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>
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)
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)
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>
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)
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!