计算时间差,可以使用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;
}