Summieren von zwei Zeitstempeln könnte zu einem Wert führen, der sehr weit in der Zukunft überläuft (und aus dem ein neues Date() nicht mit einem gültigen Datum instanziiert werden kann, wenn das Ergebnis ein negativer Zeitstempel ist, wenn intern mit 32 Bit Ganzzahlen berechnet wird).
Das "neue Datum (Millis)" kann nicht für eine große Bandbreite von Daten (weit in der Vergangenheit oder in der Zukunft) garantiert werden, sondern funktioniert nur innerhalb eines begrenzten Bereichs von Zeitstempeln.
Die Frage ist also: Was sind die Werte von date1 und date2? - Wenn sie beide absolute Zeitstempel sind, ist ihre Summe ein vollständiger Unsinn. - Wenn der eine absolut und der andere eine relative Dauer ist, ist dies für eine kleine positive Dauer sinnvoll, und die Summe ist ein absoluter Zeitstempel. - Wenn beide relativ sind, ist das Ergebnis auch relativ. - negative relative Dauern können auch nicht mit getTime() funktionieren, und allgemeiner mit allen zyklischen Kalenderberechnungen, wenn sie intern einen "mod" -Operator oder einige ganzzahlige Divisionen anstelle von floor() verwenden): this könnte verbieten, gültige Werte für einige Felder wie Jahr, Woche, Monat oder sogar nur die Stunde (Modulo 24), Minute oder Sekunde (Modulo 60) zu berechnen: Sie erhalten Überläufe/Unterläufe oder Annäherungen in nicht getesteten/nicht unterstützten Datumsbereichen
Wie Sie gerade bearbeitet haben, sehe ich, dass Sie versuchen, zwei absolute Daten zu summieren. Bei der Verwendung von getTime() für absolute Daten sind die zurückgegebenen Werte bereits riesige Werte (aus einer Epoche weit in der Vergangenheit), und ihre Summe wird die Kapazität einiger 32-Bit-Implementierungen überlaufen.
Sie also den negativen Wert erhalten ...
Sehen Sie es selbst: die einzelnen Werte von date1.getTime log() und date2.getTime()
Wahrscheinlich, was Sie versuchen zu berechnen ist eine Differenz zweier absoluter Daten, keine Summe, um eine Dauer in Millisekunden zurückzugeben.
https://jsfiddle.net/ x2yore52/funktioniert für mich .. was erwartest du? Gib uns ein Beispiel – Hearner
Was meinst du mit _es funktioniert nicht_? Könntest du vielleicht ein bisschen mehr erklären, was du archivieren willst? Möchten Sie die vollständigen Zeitstempel oder nur z. Tages- oder Minutenbereiche? – Robin
Wenn das Date-Objekt mit ungültigen Parametern erstellt wird, gibt seine Methode '.getTime'' NaN' zurück. "NaN" ist viral: Jede mathematische Operation, die unter Verwendung von "NaN" durchgeführt wird, ergibt "NaN". Eines oder beide Ihrer Date-Objekte sind wahrscheinlich fehlerhaft. Rufen Sie '.toString()' an Ihren Daten auf, wenn sie schlecht sind, erhalten Sie "Invalid Date" zurück. –