Typescript: Durch das Erstellen eines neuen Datums aus dem Zeichenfolgendatum werden 21 Sekunden zum Ergebnis hinzugefügt

Erstellt am 5. Juli 2019  ·  4Kommentare  ·  Quelle: microsoft/TypeScript


TypeScript-Version: 3.5.2


Suchbegriffe: 3.5.2 Datum 21 Sekunden neu Datum () neu Datumszeichenfolge greenwich Frankreich

Code

Durch das Erstellen neuer Daten (vor oder gleich dem 10. März 1911) aus Daten im Zeichenfolgenformat werden dem resultierenden Datum 21 Sekunden hinzugefügt.


var firstDate = new Date("1900-01-01T00:00:00.000Z").toString()
// Mon Jan 01 1900 00:09:21 GMT+0009 (Central European Standard Time)

var secondDate = new Date(firstDate).toString()
// Mon Jan 01 1900 00:09:42 GMT+0009 (Central European Standard Time)

var thirdDate = new Date(secondDate).toString()
// Mon Jan 01 1900 00:10:03 GMT+0009 (Central European Standard Time)

Erwartetes Verhalten:
Sollte zurückkehren Mo Jan 01 1900 00:09:21 GMT + 0009 (Mitteleuropäische Standardzeit)

Tatsächliches Verhalten:
Fügt jedes Mal 21 Sekunden hinzu, wenn ein neues Datum (Zeichenfolge) aufgerufen wird.

Spielplatz Link:

Verwandte Themen:

Question

Hilfreichster Kommentar

\.

@ j-oliveras alles hängt von deinen Compiler-Optionen ab:

temporalAnomaly

<\ / Sarkasmus>

Alle 4 Kommentare

Wie ist dies ein Fehler mit Typoskript, wenn dies zur Laufzeit ist?

Als nächstes wird das toString in Kleinbuchstaben geschrieben. Mit Node (10.15.3), Firefox (67.0.4) Devtools-Konsole und Chrome (75) Devtools-Konsole funktioniert dies wie erwartet (Kommentare von der Knotenausgabe):

var firstDate = new Date("1900-01-01T00:00:00.000Z").toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

var secondDate = new Date(firstDate).toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

var thirdDate = new Date(secondDate).toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

\.

@ j-oliveras alles hängt von deinen Compiler-Optionen ab:

temporalAnomaly

<\ / Sarkasmus>

In aller Ernsthaftigkeit, @ ruslan-volkov, betrifft dieses Problem nicht den TypeScript-Compiler. Solange der Compiler den richtigen JavaScript-Ausgabecode erzeugt, was er tut, ist an TypeScript nichts auszusetzen.

Was Sie sehen, könnte ein Fehler in einer bestimmten JavaScript-Laufzeit-Engine (oder möglicherweise mehreren Engines) sein, der wahrscheinlich mit der Berechnung von Daten vor 1911 in Frankreich zu tun hat, als das Land 9 Minuten und 21 Sekunden vor GMT lag . Aber es hat nichts mit TypeScript zu tun.

Ich bin mir auch nicht sicher, ob sich irgendjemand in der JS-Laufzeitwelt darum kümmern wird, da alle Probleme beim Erstellen von Date -Objekten so sind, wie Sie es tun:

Hinweis: Das Parsen von Datumszeichenfolgen mit dem Konstruktor Date ... wird aufgrund von Unterschieden und Inkonsistenzen im Browser dringend empfohlen.

Viel Glück!

Danke für deine Antworten und deine Zeit, mein Schlechtes!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen