En réponse à une mise à jour de Chrome vers la version 67, un utilisateur a rencontré une incohérence dans les décalages de fuseau horaire de date. Plus précisément, l'utilisateur a remarqué une différence dans les valeurs de décalage renvoyées par différents navigateurs lors de la récupération des informations de fuseau horaire pour les dates antérieures à 1970.
Erreur observée :
Dans Chrome 67 , new Date("1900-01-01T00:00:00").getTimezoneOffset() a renvoyé -150, indiquant un décalage de fuseau horaire de 2 heures et 30 minutes par rapport à UTC, tandis que d'autres navigateurs ont renvoyé -180 (UTC 3).
Explication :
Cette différence est due à un changement dans la façon dont Chrome 67 gère les données de fuseau horaire historique. Avant 1919, le décalage horaire en Europe/Moscou était de 2 heures et 30 minutes, et non d'un nombre entier d'heures. Chrome 67 arrondit à l'heure entière la plus proche, ce qui entraîne le décalage observé de -150.
Impact :
L'incohérence peut affecter les applications qui s'appuient sur des paramètres sensibles au fuseau horaire. informations, en particulier pour les dates antérieures à 1970.
Résolution :
Pour atténuer ce problème, il est recommandé de modifier le code pour éviter de demander des informations de fuseau horaire pour les dates antérieures à 1970. , car la base de données de fuseau horaire de l'IANA peut ne pas fournir des données entièrement précises pour cette période. De plus, il convient de considérer l'impact potentiel de ce changement sur le code existant qui aurait pu s'appuyer sur le comportement précédent de décalage de fuseau horaire dans Chrome.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!