Date
Javascript のオブジェクトで使用できる最大日付と最小日付は?
古代の歴史的な日付 ( などJanuary 1, 2,500 B.C.
) や、はるか未来の日付 ( など) を表すことは可能October 7, 10,000
ですか?
これらの遠い日付をオブジェクトで表すことができないDate
場合、どのように表す必要がありますか?
Date
Javascript のオブジェクトで使用できる最大日付と最小日付は?
古代の歴史的な日付 ( などJanuary 1, 2,500 B.C.
) や、はるか未来の日付 ( など) を表すことは可能October 7, 10,000
ですか?
これらの遠い日付をオブジェクトで表すことができないDate
場合、どのように表す必要がありますか?
時間は、1970 年 1 月 1 日 UTC からのミリ秒単位で ECMAScript で測定されます。
...
ECMAScript の Date オブジェクトがサポートする実際の時間の範囲は ... 1970 年 1 月 1 日 UTC の開始時の午前 0 時を基準として正確に -100,000,000 日から 100,000,000 日です。これにより、1970 年 1 月 1 日 UTC の両側に 8,640,000,000,000,000 ミリ秒の範囲が与えられます。
そのため、オブジェクトで表現できる最も古い日付は、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
この範囲外の日付は を返しInvalid Date
ます。
new Date(8640000000000001) // Invalid Date
new Date(-8640000000000001) // Invalid Date
つまり、JavaScriptDate
型は、1970 年 1 月 1 日前後の約 285,616 年間、ミリ秒単位の精度で時間を測定するのに十分です。質問に投稿された日付は、この範囲内に非常に快適に収まっています。