Maison > Article > interface Web > Pourquoi le constructeur de date de JavaScript renvoie-t-il octobre lorsque je fournis 9 pour le mois ?
Naviguer dans les écarts de mois dans le constructeur de dates de JavaScript
Lorsque vous travaillez avec des dates en JavaScript, il est crucial de comprendre la particularité de la façon dont les mois sont indexés. Une requête récente sur Mozilla Firefox Firebug a soulevé des inquiétudes :
var myDate = new Date(2012, 9, 23, 0, 0, 0, 0); console.log(myDate);
Sortie :
Date {Tue Oct 23 2012 00:00:00 GMT-0400 (Eastern Daylight Time)}
En fouillant l'écart, l'utilisateur a observé un résultat inattendu : JavaScript a renvoyé une date en octobre au lieu de Septembre, comme prévu.
Dévoiler la vérité : l'indexation base zéro
La clé réside dans l'indexation base zéro utilisée par le constructeur Date de JavaScript pendant des mois. Dans ce schéma d'indexation, les mois commencent par 0 pour janvier et 11 représente décembre. Par conséquent, l'index mensuel transmis dans le constructeur (9) correspond en fait à octobre et non à septembre.
Clarification avec les références :
Le Mozilla Developer Network (MDN) fournit des conseils explicites :
month: Integer value representing the month, beginning with 0 for January to 11 for December.
De plus, la spécification du langage ECMAScript offre un aperçu technique :
7. Let mn be ?(ℝ(m) modulo 12).
Cette ligne explique que la saisie du mois subit une opération modulo avec 12, enveloppant efficacement l'index du mois dans la plage de 0. à 11.
Par conséquent, lors de la construction d'une date en JavaScript, il est essentiel de se rappeler que les mois sont indexés à zéro pour éviter toute confusion ou résultat inattendu.
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!