js 计算两个时间相减获得对应的天,小时,分钟

计算时间差,可以使用DATE对象

var beginDate = new Date(beginDateStr);
var endDate = new Date(endDateStr);
var hours=(endDate - beginDate) / (1000 * 60 * 60);

日期函数是可以相减的,需要注意一定要乘以1000,因为时间戳加到了毫秒。

根据上面代码可知

1.获取天是:(开始时间 - 结束时间) / (1000 * 60 * 60 * 24);

2.获取小时是:(开始时间 - 结束时间) / (1000 * 60 * 60 );

3.获取分钟是:(开始时间 - 结束时间) / (1000 * 60 );


工作中一般有个问题就是,我们一帮需要统计两个时间相减获得的天数,或者小时。

两个Date对象相减获得天数
days (start, end){
    return parseInt(end.diff(start));
}


两个Date对象相减获得的小时
hours (start, end) {
    let hours = parseInt((endDate - beginDate) / (1000 * 60 * 60));

    // 下面判断是需不需要加上分钟,如果需要加上分钟就是时间加一,否则直接返回小时,无需下面操作

    //计算天数后剩余的毫秒数
	let leave1 =  (endDate.getTime() - beginDate.getTime()) % (24*3600*1000) ;  
	let leave2 = leave1 % (3600 * 1000);     //计算小时数后剩余的毫秒数
	let minutes = Math.floor(leave2 / (60 * 1000));
	return minutes == '0' ? hours : hours + 1;
}

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值