date - getMonth i javascript ger föregående månad
Jag använder en datumväljare som ger ett datum i formatet Sön Jul 7 00:00:00 EDT 2013. Även om månaden säger juli, om jag gör en getMonth, får jag föregående månad.
var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
d1.getMonth());//gives 6 instead of 7
Vad gör jag för fel?
Svar #1
Eftersom getmonth() börjar från 0. Du kanske vill använda d1.getMonth() + 1 för att uppnå det du vill.
Svar #2
getMonth()-funktionen är nollindexerad. Du behöver göra d1.getMonth() + 1
Nyligen använde jag Moment.js-biblioteket och har aldrig tittat tillbaka. Prova det!
Svar #3
Förutsatt att du använder din variabel
var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
Månad kräver +1 för att vara korrekt, den börjar räkna från 0
d1.getMonth() + 1 // month
I kontrast.... dessa metoder behöver INTE ett plus 1
d1.getSeconds() // seconds
d1.getMinutes() // minutes
d1.getDate() // date
Och notera att det är .getDate() INTE .getDay()
d1.getDay() // day of the week as a
Hoppas detta hjälper
Jag misstänker att dessa metoder saknar konsekvens av historiska skäl
