gpt4 book ai didi

javascript - 全系列的 JavaScript 日期对象?

转载 作者:搜寻专家 更新时间:2023-11-01 05:25:47 24 4
gpt4 key购买 nike

我正在阅读有关各种实现中 JavaScript 日期对象的混合/最大值的信息。

Mozilla 文档说 JavaScript 支持 UNIX 纪元的“-100,000,000 days to +100,000,000 在任一侧”。如果我的数学是正确的,这应该是 8.64e15 毫秒在任何一边。

Microsoft MSDN 说 JScript 支持 UNIX 纪元的“approximately 285,616 years 两侧”。

Google v8 的单元测试表明 +/-1e8 days来自时代。

ECMAScript 5.1 specifies a little more clearly :

Time is measured in ECMAScript in milliseconds since 01 January, 1970 UTC. In time values leap seconds are ignored. It is assumed that there are exactly 86,400,000 milliseconds per day. ECMAScript Number values can represent all integers from –9,007,199,254,740,992 to 9,007,199,254,740,992; this range suffices to measure times to millisecond precision for any instant that is within approximately 285,616 years, either forward or backward, from 01 January, 1970 UTC.

The actual range of times supported by ECMAScript Date objects is slightly smaller: exactly –100,000,000 days to 100,000,000 days measured relative to midnight at the beginning of 01 January, 1970 UTC. This gives a range of 8,640,000,000,000,000 milliseconds to either side of 01 January, 1970 UTC

我很好奇,有没有人知道任何实际上支持这个“+/-1e8 days from epoch”范围的实现?

最佳答案

这适用于所有主要版本的浏览器:

var d = new Date();
d.setTime(8640000000000000);
document.write(d);

结果:

9 月 12 日星期五 20:00:00 GMT-0400(东部夏令时间)

这不起作用:

d.setTime(8640000000000001);

在 IE7/WinXP 上我得到 js 错误。

关于javascript - 全系列的 JavaScript 日期对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com