Estou usando um datepicker que fornece uma data no formato dom 7 de julho 00:00:00 EDT 2013. Mesmo que o mês diga julho, se eu fizer um getMonth, ele me fornecerá o mês anterior.
var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
d1.getMonth());//gives 6 instead of 7
O que estou fazendo de errado?
javascript
date
developer747
fonte
fonte
getYear()
!! ;-)Respostas:
Como getmonth () começa em 0. Você pode ter
d1.getMonth() + 1
que alcançar o que deseja.fonte
d1.getMonth() < 12 ? d1.getMonth() + 1 : 1
- caso contrário, dezembro seria 13, não?getMonth()
A função é zero indexada com base. Você precisa fazerd1.getMonth() + 1
Recentemente, usei a biblioteca Moment.js e nunca olhei para trás. Tente!
fonte
Presumindo que você use sua variável
O mês requer que o +1 seja preciso, ele começa a contar em 0
Por outro lado .... esses métodos NÃO precisam de mais 1
E observe que
.getDate()
NÃO é .getDay()
Espero que isto ajude
Suspeito que esses métodos não tenham consistência por razões históricas
fonte