Por que o Javascript trata dias e meses de maneira diferente?

37

Tenho notado que, em JavaScript, ao criar um Date , os meses são baseados em zero e os dias não são.

Por exemplo:

var foo = new Date(2012, 1, 1)

produz 1 de fevereiro de 2012

Por que isso acontece?

    
por surfitscrollit 13.12.2012 / 16:00
fonte

2 respostas

46

O mais provável é que os meses sejam considerados como um índice em uma matriz de nomes de meses, enquanto os dias são simplesmente "contados".

    
por 13.12.2012 / 16:03
fonte
12

Também pode ser que as datas de JavaScript tenham sido criadas para imitar datas de java. Java também usou um mês baseado em zero desde o começo.

API do JDK v1.0.2: Date.getMonth ()

    
por 13.12.2012 / 16:45
fonte