0

不知道我在这里做错了什么。当我执行此语句时:

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

4

3 回答 3

3

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

(为什么除了时区差异之外还有 11 天的差异?纪元和 2013 年 1 月 1 日之间有 11 个闰年。)

于 2013-11-14T23:55:26.783 回答
1

不要忘记,一年没有 365 天。此外,如果您以任何一种方式使用日期,那么使用date.js是一个好主意。

于 2013-11-14T23:53:27.720 回答
1

为什么不使用显式构造函数?例如

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

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

于 2013-11-14T23:54:23.830 回答