js时间方法集合(减时间)(30分钟为单位)(0.5 、1.5计算时间)

本文介绍了一种使用JavaScript和moment.js库进行时间差计算和时间格式化的方法。包括从毫秒数转换为天、小时、分钟和秒,以及如何以特定格式输出日期和时间。此外,还展示了如何将时间四舍五入到最近的30分钟。
摘要由CSDN通过智能技术生成
  time_aa() {
      var date1 = "2019-04-26 11:05:32"; //开始时间
      var date2 = new Date(); //结束时间
      var date3 = date2.getTime() - new Date(date1).getTime(); //时间差的毫秒数

      var subMinutes = Math.floor(date3 / (60 * 1000)); //获取总共的分钟差

      //计算出相差天数
      var days = Math.floor(date3 / (24 * 3600 * 1000));

      //计算出小时数

      var leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
      var hours = Math.floor(leave1 / (3600 * 1000));
      //计算相差分钟数
      var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
      var minutes = Math.floor(leave2 / (60 * 1000));
      //计算相差秒数
      var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
      var seconds = Math.round(leave3 / 1000);
      alert(
        " 相差 " +
          days +
          "天 " +
          hours +
          "小时 " +
          minutes +
          " 分钟" +
          seconds +
          " 秒"
      );
    }

moment.js时间计算库

以2019-20-13 21:45 等格式输出


//调用    dateFormat("YYYY-mm-dd HH:MM",  new Date);

Utils.dateFormat = function (fmt, date) {
    let ret;
    let opt = {
        "Y+": date.getFullYear().toString(), // 年
        "m+": (date.getMonth() + 1).toString(), // 月
        "d+": date.getDate().toString(), // 日
        "H+": date.getHours().toString(), // 时
        "M+": date.getMinutes().toString(), // 分
        "S+": date.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(
                ret[1],
                ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
            );
        }
    }
    return fmt;
}

利用moment.js时间以30分钟为单位
需求:18:11 =>18:30
18:34 => 19:00

  	  const tiem = util.dateFormat("YYYY-mm-dd HH:MM", this.currentDate);
  	  //上面自己封装的方法,获取到的item时间格式YYYY-MM-DD  (2019-12-30)
 	  const start = moment(tiem);
      const remainder = 30 - (start.minute() % 30);
      const dateTime = moment(start)
        .add(remainder, "minutes")
        .format("YYYY-MM-DD HH:mm");
        
       console.log(dateTime);
      this.start_time = dateTime;
      this.end_time = dateTime;

以小时0.5 、 1.5 或者2.5等格式输出的格式

		this.end_time =YYYY-mm-dd HH:MMthis.end_time =YYYY-mm-dd HH:MMvar date3 =
          new Date(this.end_time).getTime() -
          new Date(this.start_time).getTime();
        this.spend_time = date3 / 1000 / 60 / 60;
        console.log(this.spend_time, "this.spend_time");

moment 时间相减返回小时差两种方法

this.end_time的格式 2019-11-15 11:00
this.start_time 的格式 2019-11-15 16:00
或者直接用new Date()时间来,moment 是把时间转化了计算的

	   //第一种方法
	  var date3 = moment(this.end_time) - moment(this.start_time);
      this.spend_time = date3 / 1000 / 60 / 60;
      
	  //第二种方法
      const date1 = moment(this.start_time);
      const date2 = moment(this.end_time);
      const date3 = date2.diff(date1, "minute"); //计算相差的分钟数
      const h = date3 / 60; //相差的小时数
      console.log(h, "mm");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值