从JavaScript中的两个日期获得差异

时间:2012-04-03 15:08:39

标签: javascript mongodb

我使用Date()将日期存储在MongoDB中,MongoDB使用UTC的日期类型,字符串看起来像Mon, 02 Apr 2012 20:16:31 GMT

我希望在此时间与当前时间(以UTC为单位)之间得出时间差异(以秒为单位)。

我试过这个:

now = new Date();
current_date = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());
end_date = obj.end_date (Mon, 02 Apr 2012 20:16:35 GMT);
d = new Date(end_date - current_date);
console.log(d.getSeconds());

这显示22秒,显然不对。

似乎也过于复杂。也许MongoDB中有更好的方法或JavaScript中的正确方法来做到这一点?

任何建议都会很棒 - 谢谢!

2 个答案:

答案 0 :(得分:5)

你可以在Date对象上使用getTime()来获得以毫秒为单位的差异,然后将差值除以1000;

e.g。

now = new Date();
current_date = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());
end_date = obj.end_date (Mon, 02 Apr 2012 20:16:35 GMT);
var millisDiff = end_date.getTime() -  current_date.getTime();
console.log(millisDiff / 1000);

答案 1 :(得分:0)

(end_date.getTime() - current_date.getTime()) / 1000

getSeconds只返回seonds,但不会返回分钟,小时等。