1. ホーム
  2. javascript

[解決済み] 最小・最大日数

2022-02-10 08:10:09

質問事項

Javascriptで使用できる日付の最小値と最大値を知りたいのですが。 Date オブジェクトを作成します。最小の日付は紀元前200000年とかいうのを見つけたのですが、それに関する参考文献を得ることができませんでした。

どなたかご存知の方いらっしゃいますか?ブラウザに依存しないことを祈るばかりです。

エポックタイム(1970-01-01 00:00:00 UTC+00からのミリ秒)でお答えいただければ最高です。

解決方法は?

から 仕様書、§15.9.1.1 :

Dateオブジェクトは、ミリ秒単位で特定の時間を示すNumberを含んでいます。このようなNumberはtime valueと呼ばれます。時間値は、Dateオブジェクトが特定の時間の瞬間を表さないことを示すNaNであることもあります。

ECMAScript では、時間は 1970 年 1 月 1 日 (UTC) からのミリ秒単位で計測されます。時間の値では、うるう秒は無視されます。1 日あたりのミリ秒は正確に 86,400,000 ミリ秒であると仮定されます。ECMAScript の Number 値は -9,007,199,254,740,992 から 9,007,199,254,740,992 までのすべての整数を表現できます。この範囲は、1970 UTC 1月1日から前後して約 285,616 年以内の任意の瞬間に対してミリ秒精度で時間を計測するには十分な長さです。

ECMAScript の Date オブジェクトがサポートする実際の時間範囲は、1970 年 1 月 1 日 (UTC) の真夜中を基準として計測した -100,000,000 日から 100,000,000 日とやや小さくなっています。これは、1970年1月1日(UTC)を基準として、8,640,000,000,000ミリ秒の範囲となります。

1970年1月1日午前0時(UTC)開始の正確な瞬間は、値「+0」で表されます。

3番目の段落が最も重要です。この段落に基づき、仕様に基づく正確な最も古い日付を次のようにして取得できます。 new Date(-8640000000000000) であり、前271,821年4月20日火曜日(BCE=Before)である。 共通時代 例:-271,821年)。