我使用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中的正确方法来做到这一点?
任何建议都会很棒 - 谢谢!
答案 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,但不会返回分钟,小时等。