Heim > Web-Frontend > js-Tutorial > Warum verhält sich „new Date()' in Chrome und Firefox beim Konvertieren von UTC-Zeitzeichenfolgen unterschiedlich?

Warum verhält sich „new Date()' in Chrome und Firefox beim Konvertieren von UTC-Zeitzeichenfolgen unterschiedlich?

Linda Hamilton
Freigeben: 2024-10-26 02:51:02
Original
685 Leute haben es durchsucht

Why does `new Date()` behave differently in Chrome and Firefox when converting UTC time strings?

Verstehen der Diskrepanz im Verhalten von new Date() zwischen Chrome und Firefox

Beim Konvertieren einer Datumszeichenfolge in ein Date-Objekt mit new Date( ) ergibt sich ein subtiler Unterschied zwischen Chrome und Firefox. Dieses Verhalten kann verwirrend sein, insbesondere wenn mit UTC-Zeitzeichenfolgen gearbeitet wird.

Der in der Frage bereitgestellte Code, var date = new Date('2013-02-27T17:00:00');, erstellt ein Datum Objekt aus einer Datumszeichenfolge im UTC-Format. Das Ergebnis unterscheidet sich jedoch zwischen den beiden Browsern:

  • Firefox: Gibt ein Datum zurück, das einen Tag hinter der erwarteten UTC-Zeit liegt.
  • Chrome: Gibt die korrekte UTC-Zeit zurück.

Die Ursache der Diskrepanz

Der Unterschied ergibt sich aus der Interpretation der Datumszeichenfolge. Firefox interpretiert die Zeichenfolge als Ortszeit in der Zeitzone des Browsers, während Chrome sie als UTC interpretiert. Infolgedessen fügt Firefox den Zeitzonenversatz des Browsers zum Datum hinzu, wodurch es einen Tag nach UTC angezeigt wird.

Die Lösung

Um diese Diskrepanz zu beheben und zu erhalten Um in beiden Browsern die korrekte UTC-Zeit anzuzeigen, ist es wichtig, das richtige Format für UTC-Datumszeichenfolgen einzuhalten. Das korrekte Format ist:

YYYY-MM-DDTHH:mm:ssZ
Nach dem Login kopieren

wobei:

  • JJJJ-MM-TT das Jahr, den Monat und den Tag darstellt.
  • HH:mm:ss stellt die Stunde, Minute und Sekunde dar.
  • Z steht für den Indikator der Zulu-Zeit.

Durch das Hinzufügen des Indikators „Z“ am Ende der Datumszeichenfolge wird dies von Browsern korrekt interpretiert es als UTC-Zeit.

Aktualisierter Code:

<code class="javascript">var date = new Date('2013-02-27T17:00:00Z'); // Appends 'Z' to indicate UTC
alert(date);</code>
Nach dem Login kopieren

Dieser aktualisierte Code erzeugt jetzt dasselbe korrekte UTC-Datumsobjekt in Firefox und Chrome.

Das obige ist der detaillierte Inhalt vonWarum verhält sich „new Date()' in Chrome und Firefox beim Konvertieren von UTC-Zeitzeichenfolgen unterschiedlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage