Vá para casa Javascript Date, você está bêbado

Tivemos um pequeno problema com alguns testes de Javascript, hoje 31 de julho.

Estávamos fazendo isso:

var date = new Date();
date
.setYear(2013);
date
.setMonth(5);
date
.setDate(13);

A data variável deveria ser “13 de junho de 2013”, mas hoje era “13 de julho de 2013”.

Por quê?

Porque em Javascript, quando você faz setMonth sem especificar o dia, o Javascript usa por padrão o dia atual. Hoje é 31 de junho. 31 de junho não existe. Para corrigir esse estouro, o Javascript pula para o mês seguinte.

É por isso que estava exibindo “13 de julho de 2013”

Vá para casa data de Javascript. Você está bêbado.