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 ?

Pourquoi `new Date()` se comporte-t-il différemment dans Chrome et Firefox lors de la conversion des chaînes d'heure UTC ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 02:51:02641parcourir

Why does `new Date()` behave differently in Chrome and Firefox when converting UTC time strings?

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 :

  • Firefox :Renvoie une date d'un jour en retard par rapport à l'heure UTC prévue.
  • Chrome : Renvoie l'heure UTC correcte.

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ù :

  • AAAA-MM-JJ représente l'année, le mois et le jour.
  • HH:mm:ss représente l'heure, les minutes et les secondes.
  • Z représente l'indicateur Zulu Time.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn