我有两个 Date 对象,我想计算小时差。
如果小时差小于 18 小时,我想将日期对象推送到数组中。
Javascript / jQuery,没关系;什么效果最好。
我有两个 Date 对象,我想计算小时差。
如果小时差小于 18 小时,我想将日期对象推送到数组中。
Javascript / jQuery,没关系;什么效果最好。
最简单的方法是直接将日期对象彼此相减。
例如:
var hours = Math.abs(date1 - date2) / 36e5;
减法以毫秒为单位返回两个日期之间的差异。36e5
是 的科学记数法60*60*1000
,除以将毫秒差转换为小时。
尝试使用getTime
(mdn doc):
var diff = Math.abs(date1.getTime() - date2.getTime()) / 3600000;
if (diff < 18) { /* do something */ }
使用Math.abs()
我们不知道哪个日期最小。这段代码可能更相关:
var diff = (date1 - date2) / 3600000;
if (diff < 18) { array.push(date1); }
使用通过调用valueOf
日期对象获得的时间戳:
var diff = date2.valueOf() - date1.valueOf();
var diffInHours = diff/1000/60/60; // Convert milliseconds to hours