Heim > Web-Frontend > js-Tutorial > Warum führt „neues Datum (\'JJJJ-MM-TTTHH:MM:SS\')' zu unterschiedlichen Ergebnissen in Chrome und Firefox?

Warum führt „neues Datum (\'JJJJ-MM-TTTHH:MM:SS\')' zu unterschiedlichen Ergebnissen in Chrome und Firefox?

Susan Sarandon
Freigeben: 2024-10-27 01:49:30
Original
330 Leute haben es durchsucht

Why Does `new Date('YYYY-MM-DDTHH:MM:SS')` Produce Different Results in Chrome and Firefox?

Browserübergreifende Kompatibilität der Erstellung von Datumsobjekten

Beim Parsen einer Datumszeichenfolge in ein Datumsobjekt mithilfe von JavaScript treten Abweichungen zwischen verschiedenen Browsern auf, z wie Chrome und Firefox. Diese Diskrepanz wird deutlich, wenn der neue Date()-Konstruktor verwendet wird, um eine Datumszeichenfolge im Format „JJJJ-MM-TTTHH:MM:SS“ zu analysieren.

Im bereitgestellten Codeausschnitt:

<code class="js">var date = new Date('2013-02-27T17:00:00');</code>
Nach dem Login kopieren

Firefox interpretiert die Eingabezeichenfolge als Ortszeit und fügt den lokalen Zeitzonenversatz (GMT 0700) hinzu. Dies führt zu einem Datum, das einen Tag vor der beabsichtigten UTC-Zeit liegt, und ergibt:

Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
Nach dem Login kopieren

Umgekehrt analysiert Chrome die Zeichenfolge korrekt als UTC-Zeit und gibt das erwartete Ergebnis zurück:

Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
Nach dem Login kopieren
Nach dem Login kopieren

Lösung

Um ein konsistentes Verhalten in allen Browsern sicherzustellen, hängen Sie „Z“ an die Datumszeichenfolge an, um die UTC-Zeit explizit anzugeben. Das korrekte Format für UTC wäre „JJJJ-MM-TTTHH:MM:SSZ“.

<code class="js">var date = new Date('2013-02-27T17:00:00Z');</code>
Nach dem Login kopieren

Diese Änderung behebt die Diskrepanz und führt in Chrome und Firefox zum gleichen Ergebnis, das die ursprüngliche UTC-Zeit widerspiegelt :

Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum führt „neues Datum (\'JJJJ-MM-TTTHH:MM:SS\')' zu unterschiedlichen Ergebnissen in Chrome und Firefox?. 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