如何获得两个date对象之间的小时差异?

我有两个Date对象,我想计算小时的差异。

如果小时差小于18小时,我想将date对象推入一个数组。

Javascript / jQuery,并不重要; 最好的做法是什么。

最简单的方法是直接相互减去date对象。

例如:

var hours = Math.abs(date1 - date2) / 36e5; 

减法返回两个date之间的差异,以毫秒为单位。 36e560*60*1000的科学记数法,将毫秒差分为小时。

尝试使用getTime ( mdn doc ):

 var diff = Math.abs(date1.getTime() - date2.getTime()) / 3600000; if (diff < 18) { /* do something */ } 

使用Math.abs()我们不知道哪个date是最小的。 这个代码可能更相关:

 var diff = (date1 - date2) / 3600000; if (diff < 18) { array.push(date1); } 

通过调用date对象上的valueOf来获得时间戳:

 var diff = date2.valueOf() - date1.valueOf(); var diffInHours = diff/1000/60/60; // Convert milliseconds to hours