Maison >interface Web >js tutoriel >Pourquoi `new Date(\'YYYY-MM-DDTHH:MM:SS\')` produit-il des résultats différents dans Chrome et Firefox ?
Compatibilité entre navigateurs de la création d'objets date
Lors de l'analyse d'une chaîne de date dans un objet Date à l'aide de JavaScript, des variations surviennent entre différents navigateurs tels que comme Chrome et Firefox. Cette différence devient évidente lors de l'utilisation du nouveau constructeur Date() pour analyser une chaîne de date au format « AAAA-MM-JJTHH:MM:SS ».
Dans l'extrait de code fourni :
<code class="js">var date = new Date('2013-02-27T17:00:00');</code>
Firefox interprète la chaîne d'entrée comme une heure locale et ajoute le décalage du fuseau horaire local (GMT 0700). Cela donne une date qui est un jour en avance sur l'heure UTC prévue, ce qui donne :
Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
À l'inverse, Chrome analyse correctement la chaîne en tant qu'heure UTC et renvoie le résultat attendu :
Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
Solution
Pour garantir un comportement cohérent entre les navigateurs, ajoutez « Z » à la chaîne de date pour indiquer explicitement l'heure UTC. Le format correct pour UTC serait « AAAA-MM-JJTHH:MM:SSZ ».
<code class="js">var date = new Date('2013-02-27T17:00:00Z');</code>
Cette modification résoudra l'écart et produira le même résultat dans Chrome et Firefox, reflétant l'heure UTC d'origine. :
Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
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!