Maison > interface Web > js tutoriel > 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
Libérer: 2024-10-20 13:35:30
original
751 Les gens l'ont consulté

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]);
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal