Maison  >  Article  >  interface Web  >  Pourquoi le constructeur de dates IE diffère-t-il de la gestion des dates de Chrome et Firefox ?

Pourquoi le constructeur de dates IE diffère-t-il de la gestion des dates de Chrome et Firefox ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-20 13:35:30642parcourir

Why Does IE Date Constructor Differ from Chrome and Firefox Date Handling?

Problème du constructeur de dates IE : NaN par rapport aux fonctionnalités d'autres navigateurs

Au sein d'un projet impliquant le développement d'un calendrier JavaScript, des écarts sont apparus dans la gestion des dates entre Internet Explorer (IE) et les navigateurs comme Firefox et Chrome. Plus précisément, les fonctions de date d'IE entraînaient des valeurs NaN (Not a Number), alors qu'elles fonctionnaient correctement dans les autres navigateurs.

Après enquête, il est devenu clair que la cause première était liée au format de date utilisé. La fonction en question, buildWeek(), destinée à générer des dates d'en-tête pour une semaine civile basée sur une date du lundi fournie au format « m, d, Y », par exemple « 02, 01, 2010 ». Cependant, dans IE, ce format n'était pas reconnu correctement, ce qui entraînait le problème NaN.

Pour résoudre cet écart, une approche différente a été adoptée. Au lieu de s'appuyer sur le format donné, la chaîne de date a été divisée en ses composants (date et heure) à l'aide de split(" "). Par la suite, le composant date a été divisé en ses parties constitutives (année, mois, jour) à l'aide de split("-"), et le composant temps a été divisé en ses parties (heures, minutes, secondes) à l'aide de split(":") .

Une instance de Date a ensuite été construite en utilisant ces valeurs analysées. Cette méthode s'est avérée compatible avec tous les navigateurs, garantissant une gestion cohérente des dates dans IE, Firefox et Chrome.

var dateStr = "2011-08-03 09:15:11"; //returned from mysql timestamp/datetime field
var a = dateStr.split(" ");
var d = a[0].split("-");
var t = a[1].split(":");
var date = new Date(d[0], (d[1] - 1), d[2], t[0], t[1], t[2]);

En adoptant cette approche, les erreurs NaN dans IE ont été éliminées avec succès, permettant ainsi une gestion cohérente des dates dans différents navigateurs.

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