计算两个时间的差值
- 获取两个时间数据,通常这两个时间是:后端给的时间数据和当前时间
// 初始时间
let dateBegin = '2018/08/28 04:56:38';
// 转为Date对象的数据形式
dateBegin = new Date(dateBegin);
// 第二个数据通常是当前时间
let dateEnd = new Date();
- 使用getTime()返回与固定的 1970 年 1 月 1 日的时间差,再用大的时间减去短的时间即可得出双方相差的毫秒数。
let dateDiff = dateEnd.getTime() - dateBegin.getTime();
- 换算成你想要的时间单位,得出两个时间的时间差。
// 计算出相差天数
let dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));
// 计算天数后剩余的毫秒数 利用这个时间去计算小时
let leave1 = dateDiff % (24 * 3600 * 1000);
// 计算出小时数
let hours = Math.floor(leave1 / (3600 * 1000));
// 计算相差分钟数
let leave2 = leave1 % (3600 * 1000); // 计算小时数后剩余的毫秒数
let minutes = Math.floor(leave2 / (60 * 1000)); // 计算相差分钟数
// 计算相差秒数
let leave3 = leave2 % (60 * 1000); // 计算分钟数后剩余的毫秒数
let seconds = Math.round(leave3 / 1000);
// 结果
console.log(`相差${dayDiff}天${hours}小时${minutes}分钟${seconds}秒`);
如果你只想计算相差的小时数,不想管天数:
let dayDiff = Math.floor(dateDiff / (3600 * 1000)); // 其他的同理,倍数正确即可