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

时间:2013-10-07 12:51:02

标签: javascript jquery date object

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

如果小时差异小于18小时,我想将日期对象推送到数组中。

Javascript / jQuery,并不重要;什么效果最好。

3 个答案:

答案 0 :(得分:163)

最简单的方法是直接从彼此中减去日期对象。

例如:

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

减法返回两个日期之间的差异(以毫秒为单位)。 36e560*60*1000的科学记数法,除以将毫秒差异转换为小时。

答案 1 :(得分:31)

尝试使用getTimemdn 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); }

答案 2 :(得分:3)

使用日期对象上的valueOf来获取时间戳:

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