Maison >interface Web >js tutoriel >Pourquoi `new Date()` se comporte-t-il différemment dans Chrome et Firefox lors de la conversion des chaînes d'heure UTC ?
Comprendre l'écart dans le comportement de new Date() entre Chrome et Firefox
Lors de la conversion d'une chaîne de date en un objet Date à l'aide de new Date( ), une différence subtile apparaît entre Chrome et Firefox. Ce comportement peut prêter à confusion, en particulier lorsque vous travaillez avec des chaînes d'heure UTC.
Le code fourni dans la question, var date = new Date('2013-02-27T17:00:00');, crée une date objet à partir d’une chaîne de date au format UTC. Cependant, le résultat diffère entre les deux navigateurs :
La cause de l'écart
La différence provient de l'interprétation de la chaîne de date. Firefox interprète la chaîne comme une heure locale dans le fuseau horaire du navigateur, tandis que Chrome l'interprète comme UTC. En conséquence, Firefox ajoute le décalage horaire du navigateur à la date, ce qui entraîne son affichage d'un jour en retard sur UTC.
La solution
Pour résoudre cet écart et obtenir l'heure UTC correcte dans les deux navigateurs, il est essentiel de respecter le format approprié pour les chaînes de date UTC. Le format correct est :
YYYY-MM-DDTHH:mm:ssZ
où :
En ajoutant l'indicateur "Z" à la fin de la chaîne de date, les navigateurs interpréteront correctement comme heure UTC.
Code mis à jour :
<code class="javascript">var date = new Date('2013-02-27T17:00:00Z'); // Appends 'Z' to indicate UTC alert(date);</code>
Ce code mis à jour produira désormais le même objet de date UTC correct dans Firefox et 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!