新日期中的毫秒数会产生意外结果

时间:2013-11-14 23:51:19

标签: javascript date

不确定我在这里做错了什么。当我执行这个陈述时:

new Date(43 * 365 * 24 * 60 * 60 * 1000) // ms from Epoch to Jan 1st, 2013

我明白了:

Thu Dec 20 19:00:00 EST 2012

我想我显然是半睡半醒,因为我确信这应该按照预期工作(显然不是;))。

更新: 谢谢大家 - 是的,我完全忘记了闰年失去的那一天。作为其他人的参考,您可以在此处找到更多详细信息: http://www.wikihow.com/Calculate-Leap-Years

3 个答案:

答案 0 :(得分:3)

这是自1970年1月1日午夜UTC以来的毫秒数工作。

(为什么11天的差异除了时区差异?这个时期与2013年1月1日之间有11个闰年。)

答案 1 :(得分:1)

不要忘记每年都有365天。另外,如果你以任何一种方式处理日期,最好使用date.js

答案 2 :(得分:1)

为什么不使用显式构造函数? E.g。

new Date(year, month, day, hours, minutes, seconds, milliseconds)

Julian构造函数基于1970年1月1日以来的天数