gpt4 book ai didi

javascript - Javascript 中允许的日期范围是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:04:37 30 4
gpt4 key购买 nike

我可以在 Javascript 中使用 Date 对象的最大和最小日期是多少?

是否可以表示古代历史日期(如 公元前 2500 年 1 月 1 日)或遥远 future 的日期(如 10,000 年 10 月 7 日)?

如果不能用 Date 对象来表示这些离现在很远的日期,我应该如何表示它们?

最佳答案

根据 §15.9.1.1 of the ECMA-262 specification ,

Time is measured in ECMAScript in milliseconds since 01 January, 1970 UTC.
...
The actual range of times supported by ECMAScript Date objects is ... 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.

所以用 Date 对象表示的最早日期远远超出已知的人类历史:

new Date(-8640000000000000).toUTCString()
// Tue, 20 Apr 271,822 B.C. 00:00:00 UTC

最新日期足以持续超过Y10K甚至超过 Y100K,但需要在 Y276K 之前几百年进行返工。

new Date(8640000000000000).toUTCString()
// Sat, 13 Sep 275,760 00:00:00 UTC

超出此范围的任何日期都将返回无效日期

new Date(8640000000000001)   // Invalid Date
new Date(-8640000000000001) // Invalid Date

简而言之,JavaScript Date 类型将足以测量 1970 年 1 月 1 日前后大约 285,616 年内精确到毫秒的时间。问题中发布的日期非常适合在此范围内。

关于javascript - Javascript 中允许的日期范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12666127/

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