pourquoi getMonth () commence par 0

10

Je codais une fonction pour supprimer un jour d'une valeur de date en javascript et j'ai été un peu surpris que getMonth () de javascript commence de 0 pour janvier à 11 pour décembre. Pourquoi getMonth () de javascript commence par 0?

mahen23
la source
4
Parce que C l'a struct tmfait de cette façon.
Paul Tomblin
2
OK alors laissez-moi poser une question plus générale. Pourquoi voudriez-vous écrire un objet date qui a 0 mois basé sur l'index mais pas les jours, les années, les heures, les minutes, etc.?
The Muffin Man

Réponses:

14

à une estimation, pour aider à l'indexation dans les tableaux.

Imaginez que vos chaînes d'affichage du mois soient stockées dans un tableau et que vous souhaitez obtenir la chaîne correcte à l'aide de getMonth ()

bien sûr, pourquoi les tableaux commencent à zéro est une autre question

jk.
la source
8
Non non Non!!! Cela a à voir avec cette question
cwallenpoole
1

Très probablement parce que l'appel à la bibliothèque C invoqué pour obtenir la valeur à renvoyer renvoie des mois de cette façon.

(Et la raison de cette conception était probablement parce que l'appel à la bibliothèque a été conçu avec le programme pour imprimer la date, où un index de base zéro pourrait être utilisé directement pour imprimer les noms des mois)


la source
1

Si un élément d'une structure commence par 0, tous les éléments doivent également commencer par lui ou aucun d'entre eux. J'ai découvert ce comportement sur mon site un peu tard.

Tarik
la source