Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中允许的日期范围是什么?_Javascript_Datetime - Fatal编程技术网

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

Javascript中允许的日期范围是什么?,javascript,datetime,Javascript,Datetime,Javascript中的date对象可以使用的最大和最小日期是多少 是否可以表示古代历史日期(如公元前2500年1月1日)或遥远的未来日期(如10000年10月7日) 如果这些远离当前日期的日期不能用Date对象表示,我应该如何表示它们 自UTC 1970年1月1日起,时间以ECMAScript为单位,以毫秒为单位。 … ECMAScript日期对象支持的实际时间范围是。。。准确地说,–相对于UTC 1970年1月1日开始时的午夜测量100000000天到100000000天。这使得UTC 19

Javascript中的
date
对象可以使用的最大和最小日期是多少

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

如果这些远离当前日期的日期不能用
Date
对象表示,我应该如何表示它们

自UTC 1970年1月1日起,时间以ECMAScript为单位,以毫秒为单位。

ECMAScript日期对象支持的实际时间范围是。。。准确地说,–相对于UTC 1970年1月1日开始时的午夜测量100000000天到100000000天。这使得UTC 1970年1月1日任一侧的范围为8640000000000000毫秒

因此,用
日期
对象表示的最早日期远远超出了已知的人类历史:

new Date(-8640000000000000).toUTCString()
// Tue, 20 Apr 271,822 B.C. 00:00:00 UTC
最新的日期足以持续超过甚至超过100K日元,但需要在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日之前或之后大约285616年内测量毫秒精度的时间。问题中公布的日期完全在这个范围内。

那么,当你已经知道这些距离现在很远的日期可以被表示时,问“如果这些日期不能被表示…”又有什么意义呢?如果你知道这个问题没有意义,为什么要提出这个问题P@user1689607我不知道,没有它这个问题就觉得不完整。嗯,不管怎样,这是一个有趣的问题。很高兴看到JS没有2038年的问题。我相信过去的日期有错误。这是我得到的新日期(-8640000000000000)。ToutString()=“4月20日星期二-271821 00:00:00 GMT”@Rohit请注意结尾处的
1
<代码>新日期(-8640000000000001)是
无效日期
,而
新日期(-864000000000000)
是您得到的日期,即最早的有效日期。