js 根据开始时间计算距今 -- 时分秒

news/2024/7/19 14:07:09 标签: js, 时分秒

方法一

dayCha(startime, endime) {
      startime = startime.replace(new RegExp("-", "gm"), "/"); //转换-变为/
      var start = new Date(startime);
      var startYear = start.getFullYear(); //开始年份
      var startMonth = start.getMonth() + 1; //开始月份
      var startDay = start.getDate(); //开始日期
      var startMiao = start.getTime();

      endime = endime ? endime.replace(new RegExp("-", "gm"), "/") : "";
      var end = endime ? new Date(endime) : new Date();

      var endYear = end.getFullYear(); //结束年份
      var endMonth = end.getMonth() + 1; //结束月份
      var endDay = end.getDate(); //结束日期
      var endMiao = end.getTime();

      var years = 0;
      var months = endMonth - startMonth + (endYear - startYear) * 12; //总月
      if (endMonth * 100 + endDay < startMonth * 100 + startDay) {
        months--; //如果结束日期<输入日期,月数要-1
      }
      years = Math.floor(months / 12); //取整计算年数
      months = months % 12; //取余计算月数
      var middleDate = new Date(startime); //中间时间
      middleDate.setFullYear(startYear + years); //设置中间时间年份
      middleDate.setMonth(start.getMonth() + months); //设置中间时间月份
      var days = Math.floor(
        (endMiao - middleDate.getTime()) / 24 / 60 / 60 / 1000
      ); //计算天数

      //时间差的毫秒数
      var chaTime = endMiao - startMiao;
      //计算出小时数
      var yu = chaTime % (24 * 3600 * 1000); //86400000
      var hour = Math.floor(yu / (3600 * 1000)); //3600000
      //计算相差分钟数
      var yuH = chaTime % (3600 * 1000);
      var min = Math.floor(yuH / (60 * 1000)); //60000
      //计算相差秒数
      var yuM = chaTime % (60 * 1000);
      var sec = Math.floor(yuM / 1000); //1000
      var chastr =
        years +
        "年/" +
        months +
        "月/" +
        days +
        "天 " +
        hour +
        "时:" +
        min +
        "分:" +
        sec +
        "秒";

      function strFn(e) {
        return e > 9 ? e : "0" + e;
      }

      // console.log(chastr)
      
      return {
        year: years,
        month: strFn(months),
        day: strFn(days),
        hour: strFn(hour),
        minute: strFn(min),
        second: strFn(sec),
      };
    }




//使用
setInterval(() => {
       let str = this.dayCha("2015-02-08");

      console.log(str)


      
 }, 1000);

方法二

safeTime(startime) {
      var yun_days = Math.floor((new Date().getFullYear() - 2006) / 4);
      var second = 1000,
        minute = 60 * second,
        hour = 60 * minute,
        day = 24 * hour,
        year = 365 * day;
      var date2 = new Date(startime);
      var date3 = new Date();
      var sec = date3.getTime() - date2.getTime() - yun_days * day;
      if (sec < 0) {
        sec = date2.getTime() - date3.getTime();
      }
      var years = Math.floor(sec / year);
      sec -= years * year;
      var days = Math.floor(sec / day);
      sec -= days * day;
      var hours = Math.floor(sec / hour);
      sec -= hours * hour;
      var minutes = Math.floor(sec / minute);
      sec -= minutes * minute;
      var seconds = Math.floor(sec / second);
      if (hours < 10) {
        hours = "0" + hours;
      }
      if (minutes < 10) {
        minutes = "0" + minutes;
      }
      if (seconds < 10) {
        seconds = "0" + seconds;
      }

      // console.log(years+'年'+days+'天'+hours+'时'+minutes+'分'+seconds+"秒")


      return {
        year: years,
        day: days,
        hour: hours,
        minute: minutes,
        second: seconds,
      };

 }




//使用
setInterval(() => {

      let str = this.safeTime("2015/02/08 00:00:00")

      console.log(str)


      
 }, 1000);


http://www.niftyadmin.cn/n/1558130.html

相关文章

利用maven install jar到项目当中

接着上面利用maven打好的jar包。把刚刚打好的包放入其他项目当中怎么办&#xff1f; 只需要在相同的目录下执行mvn install&#xff0c;maven会自动把jar放到本地仓库中。 这样&#xff0c;原先maven项目中缺少依赖的地方就不会报错了。转载于:https://www.cnblogs.com/zacky31…

natapp内网穿透

首先先下载 natapp下载地址 比较尴尬的是&#xff0c;下载不了 问题是http 不行&#xff0c;将url复制出来&#xff0c;改为https 就好了 下载后&#xff0c;解压&#xff0c;然后把解压出来的文件放到一个目录里 注册、创建 mac运行下面两步 进入到目录后输入下面命令行 ch…

JAVA中基本数据类型和引用数据类型区别

一、8种基本数据类型&#xff1a; byte&#xff1a;Java中最小的数据类型 在内存中占8位(bit) 1个字节 取值范围-128~127 默认值0 short&#xff1a;短整型 在内…

关于mete标签 description、keywords

description 标签中的 meta: description 标签一般为长度为160字符的文本&#xff0c;用于介绍该页面的内容。 平常多被搜索引擎截取网页简介用 <meta namedescription content"此处填写--介绍该页面的内容">keywords 关键字 meta&#xff08;标签&#xff0…

vue字符串中<br/>换行问题

作用及定义 pre 标签可定义预格式化的文本。 被包围在 pre 标签 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。 示例 用 pre 标签把字符串包起来&#xff0c;同时br换\n <template><section class"wrap"><h4 >示例&#x…

数据库MySQL的性能基线收集及压力测试

建立基线的作用&#xff1a;计算机科学中&#xff0c;基线是项目储存库中每个工件版本在特定时期的一个“快照”。 比如我们现在有并发事物&#xff0c;那么在某时刻发起一个事物会产生当前数据的快照&#xff0c;那么这个快照就相当理解为一个基线&#xff0c;那么所谓的性能数…

第一个子元素设置margin-top问题

<div class"body">最外层<div class"parent"><div class"child">子元素</div>父元素</div> </div>.body{background: yellow;.parent{width: 200px;height: 200px;background: red;.child{width: 100px;hei…