por que getMonth () começa com 0

10

Eu estava codificando uma função para remover um dia de um valor de data em javascript e fiquei surpresa que o getMonth () do javascript comece de 0 para janeiro a 11 para dezembro. Por que getMonth () do javascript começa com 0?

mahen23
fonte
4
Porque os C struct tmfizeram dessa maneira.
Paul Tomblin
2
OK, então deixe-me fazer uma pergunta mais geral. Por que você escreveria um objeto de data que possui 0 meses baseados em índice, mas não dias, anos, horas, minutos, etc?
The Muffin Man

Respostas:

14

em um palpite, para ajudar na indexação em matrizes.

Imagine que você tem suas seqüências de exibição do mês armazenadas em uma matriz e deseja obter a sequência correta usando getMonth ()

é claro, por que matrizes começam em zero é outra questão

jk.
fonte
8
Não não não!!! Tem a ver com esta questão
cwallenpoole
1

Provavelmente porque a chamada da biblioteca C invocada para obter o valor retornado, retorna meses dessa maneira.

(E o motivo desse design era mais provável porque a chamada da biblioteca foi projetada junto com o programa para realmente imprimir a data, onde um índice baseado em zero poderia ser usado diretamente para imprimir os nomes dos meses)


fonte
1

Se um elemento em uma estrutura começa com 0, todos os elementos também devem começar com ele ou nenhum deles. Descobri esse comportamento no meu site um pouco tarde.

Tarik
fonte