260 votes

Pourquoi l'argument month varie-t-il de 0 à 11 dans le constructeur Date de JavaScript ?

Lors de l’initialisation d’un nouvel `` objet en JavaScript à l’aide de l’appel ci-dessous, j’ai découvert que l’argument month compte à partir de zéro.

Pourquoi l’argument du mois commence-t-il à partir de 0 ? D’autre part, l’argument du jour du mois (le dernier) est un nombre compris entre 1 et 31. Y a-t-il de bonnes raisons à cela?

87voto

leonbloy Points 27119

C’est une vieille tradition (probablement malheureuse, probablement mourante) dans le monde de la programmation, voir l’ancienne fonction C en temps local standard (POSIX) http://linux.die.net/man/3/localtime

35voto

Nick Craver Points 313913

Tout sauf le jour du mois est basé sur 0, voir ici pour une liste complète, y compris les plages :)

C’est en fait les jours basés sur 1 qui sont les bizarreries ici... Curieusement. Pourquoi cela a-t-il été fait? Je ne sais pas... mais il s’est probablement produit la même réunion qu’ils ont été plâtrés et ont décidé que les points-virgules étaient facultatifs.

8voto

Christof Kälin Points 721

Je sais que ce n’est pas vraiment une réponse à la question initiale, mais je voulais juste vous montrer ma solution préférée à ce problème, que je ne semble jamais mémoriser car il apparaît de temps en temps.

La petite fonction zerofill fait l’affaire en remplissant les zéros si nécessaire, et le mois vient d’être `` ajouté:

Mais oui, Date a une API assez peu intuitive, je riais quand j’ai lu le Twitter de Brendan Eich.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X