Heim > Artikel > Web-Frontend > Warum gibt Chrome 67 für Daten vor 1970 einen anderen Zeitzonenversatz zurück?
Chrome 67 und historische Zeitzonenänderungen
Im jüngsten Chrome 67-Update sind Entwickler auf ein Problem mit der Zeitzonenbehandlung für frühere Daten gestoßen bis 1970. Ziel dieses Artikels ist es, diesen Fehler zu beheben und den davon betroffenen Entwicklern eine Anleitung zu geben.
Problem Beschreibung
Beim Aufruf von new Date("1900-01-01T00:00:00").getTimezoneOffset() beobachten Benutzer in Chrome 67 einen Versatz von -150 Minuten, während andere Browser, wie z Edge, Internet Explorer und Firefox geben durchweg -180 Minuten zurück. Diese Diskrepanz hat zu Verwirrung und Fehlern im Code geführt, der auf genauen Zeitzoneninformationen beruht.
Analyse und Lösung
Die unterschiedlichen Zeitzonenversätze in Chrome 67 im Vergleich zu anderen Browsern sind Dies ist auf die Art und Weise zurückzuführen, wie die zugrunde liegenden Zeitzonendaten beschafft und verarbeitet werden. Chrome 67 scheint Daten aus der IANA-Zeitzonendatenbank zu verwenden, die detailliertere Informationen über historische Zeitzonenänderungen liefert. Laut IANA-Datenbank hatte die betreffende Zeitzone (Europa/Moskau) im Jahr 1900 einen Versatz von 02:30:17. Chrome rundet dies auf 02:30 ab, was einen Versatz von -150 Minuten ergibt.
Für Daten vor 1970 gibt die IANA jedoch ausdrücklich an, dass es sich bei den Daten um „Best-Effort“-Daten handelt und diese möglicherweise nicht ganz korrekt sind. Daher wird davon abgeraten, sich für Daten vor 1970 auf genaue Zeitzoneninformationen zu verlassen.
Um dieses Problem zu mildern, wird Entwicklern empfohlen, die Verwendung des Date-Konstruktors mit Daten vor 1970 zu vermeiden. Stattdessen sollten sie sich an Daten danach halten die Unix-Epoche (1. Januar 1970), da IANA-Daten für diesen Zeitraum im Allgemeinen zuverlässiger sind. Wenn genaue historische Zeitzoneninformationen unerlässlich sind, müssen Entwickler möglicherweise alternative Datenquellen erkunden.
Das obige ist der detaillierte Inhalt vonWarum gibt Chrome 67 für Daten vor 1970 einen anderen Zeitzonenversatz zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!