por qué getMonth () comienza con 0

10

Estaba codificando una función para eliminar un día de un valor de fecha en javascript y me sorprendió que getMonth () de javascript comience de 0 para enero al 11 de diciembre. ¿Por qué getMonth () de javascript comienza con 0?

mahen23
fuente
44
Porque C lo struct tmhizo de esa manera.
Paul Tomblin
2
Bien, déjenme hacer una pregunta más general. ¿Por qué escribiría un objeto de fecha que tiene un índice basado en 0 meses pero no días, años, horas, minutos, etc.?
The Muffin Man

Respuestas:

14

en una conjetura, para ayudar con la indexación en matrices.

Imagine que tiene sus cadenas de visualización de mes almacenadas en una matriz y desea obtener la cadena correcta usando getMonth ()

por supuesto, por qué las matrices comienzan en cero es otra pregunta

jk.
fuente
8
¡¡¡No no no!!! Tiene que ver con esta pregunta
cwallenpoole
1

Lo más probable es que la llamada a la biblioteca C invocada para obtener el valor devuelto, devuelva meses de esta manera.

(Y la razón de ese diseño fue muy probable porque la llamada a la biblioteca se diseñó junto con el programa para imprimir realmente la fecha, donde un índice basado en cero podría usarse directamente para imprimir los nombres de los meses)


fuente
1

Si un elemento en una estructura comienza con 0, todos los elementos también deberían comenzar con él o ninguno de ellos. Descubrí ese comportamiento en mi sitio un poco tarde.

Tarik
fuente