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?


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


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)


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.