我正在阅读有关各种实现中 JavaScript 日期对象的混合/最大值的信息。
Mozilla 文档说 JavaScript 支持 UNIX 时代的“ -100,000,000 天到 +100,000,000 天”。如果我的数学是正确的,这应该是两边的 8.64e15 毫秒。
微软 MSDN 说 JScript 支持 UNIX 时代的“大约 285,616 年”。
Google v8 的单元测试表明距纪元+/-1e8 天。
ECMAScript 5.1规定得更清楚一点:
自 1970 年 1 月 1 日 UTC 以来,时间在 ECMAScript 中以毫秒为单位进行测量。在时间值中,闰秒被忽略。假设每天正好有 86,400,000 毫秒。ECMAScript Number 值可以表示从 –9,007,199,254,740,992 到 9,007,199,254,740,992 的所有整数;该范围足以测量从 1970 年 1 月 1 日 UTC 起大约 285,616 年(向前或向后)内的任何时刻的毫秒精度。
ECMAScript Date 对象支持的实际时间范围略小:相对于 1970 年 1 月 1 日 UTC 开始时的午夜,精确地测量 –100,000,000 天到 100,000,000 天。这为 1970 年 1 月 1 日 UTC 的任一侧提供了 8,640,000,000,000,000 毫秒的范围
我很好奇,有没有人知道实际上不支持这个“距纪元 +/-1e8 天”范围的实现?