Nach §15.9.1.1 of the ECMA-262 specification,
Zeit in ECMAScript in Millisekunden seit dem 01. Januar gemessen wird, 1970 UTC.
...
Der tatsächliche Bereich, der von ECMAScript Date-Objekten unterstützt wird, ist ... genau -100.000.000 Tage bis 100.000.000 Tage, gemessen relativ zu Mitternacht zu Beginn des 1. Januar 1970 UTC. Dies ergibt eine Reichweite von 8.640.000.000.000.000.000 Millisekunden zu beiden Seiten des 1. Januar 1970 UTC.
So das früheste Datum darstellbare mit dem Date
Objekt ist ziemlich weit über die bekannte Geschichte der Menschheit:
new Date(-8640000000000000).toUTCString()
// Tue, 20 Apr 271,822 B.C. 00:00:00 UTC
Das späteste Datum ist ausreichend über Y10K und sogar darüber hinaus Y100K dauern, aber muß überarbeitet werden ein paar hundert Jahre vor Y276K.
new Date(8640000000000000).toUTCString()
// Sat, 13 Sep 275,760 00:00:00 UTC
Beliebiges Datum außerhalb dieses Bereichs wird Invalid Date
zurück.
new Date(8640000000000001) // Invalid Date
new Date(-8640000000000001) // Invalid Date
Kurz gesagt, wird der JavaScript Date
Typ ausreicht Zeit für die Messgenauigkeit bis Millisekunden innerhalb von etwa 285.616 Jahren vor oder nach dem 1. Januar 1970. Die in der Frage angegebenen Daten liegen sehr komfortabel innerhalb dieses Bereichs.
Also, was ist der Sinn zu fragen * "Wenn diese weit entfernten Daten nicht dargestellt werden können ..." * wenn Sie bereits wussten, dass sie vertreten sein könnten? Warum stellen Sie die Frage, wenn Sie wissen, dass es strittig ist? : P –
@ user1689607 Ich weiß nicht, die Frage fühlte sich nur unvollständig ohne sie. –
Nun, es war sowieso eine interessante Frage. Gut zu sehen, dass JS das 2038-Problem nicht erleidet. –