如何得到两个日期对象之间的时差?

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

如果小时之间的差异小于18小时,我想将 date 对象推入数组。

Javascript/jQuery,这并不重要; 什么工作最好就做什么。

188428 次浏览

使用调用 date 对象上的 valueOf得到的时间戳:

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

尝试使用 getTime(医生) :

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); }

最简单的方法是直接从一个对象中减去另一个对象的日期。

例如:

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

减法以毫秒为单位返回两个日期之间的差值。36e560*60*1000的科学记数法,除以它可以把毫秒差转换成小时。