getMonth in javascript gives last month

I am using a datepicker which gives a date in the format Sun Jul 7 00:00:00 EDT 2013. Even though the month says July, if I do a getMonth, it gives me the previous month.

var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
d1.getMonth());//gives 6 instead of 7

What am I doing wrong?



Because getmonth() start from 0. You may want to have d1.getMonth() + 1 to achieve what you want.


getMonth() function is zero indexed based. You need to do d1.getMonth() + 1

Recently I used Moment.js library and never looked back. Try it!


Presuming you use your variable

var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");

Month requires a +1 to be accurate, it starts counting at 0

d1.getMonth() + 1 // month 

In contrast.... these methods DON'T need a plus 1

d1.getSeconds()   // seconds 
d1.getMinutes()   // minutes 
d1.getDate()      // date    

And notice it is .getDate() NOT .getDay()

d1.getDay()       // day of the week as a 

Hope this helps

I suspect these methods lack consistency for historical reasons


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.