Problème du constructeur de dates IE : NaN par rapport aux fonctionnalités d'autres navigateurs
Dans 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 à l'aide de ces valeurs analysées. Cette méthode s'est avérée compatible avec tous les navigateurs, garantissant une gestion cohérente des dates sur 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 ceci approche, les erreurs NaN dans IE ont été éliminées avec succès, permettant une gestion cohérente des dates dans différents navigateurs.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3