I'm getting a date from a string, parsing it to get the day, month and year constituants and use these to instance a Date object.
What I am trying to achieve is to increment the date by one day. It all works fine except that the setDate method insists on returning me invalid dates sometimes...
For example, if I add 1 day to the 28th February 2011, it will return me 29th February 2011... a date which actually doesn't exist.
Is that a bug/limitation of the JavaScript's native Date/Time API, or am I just doing something wrong? I find it hard to believe that it behaves that way without checking the validity of the date.
var myDate = new Date(2011, 2, 28);
alert(myDate);
myDate.setDate(myDate.getDate() + 1);
alert(myDate); // 29 February 2011 !
Thanks.
You are not in February - month #2 is MARCH
JS months are 0 based
var myDate = new Date(2011, 1, 28); // 28th of Feb
alert(myDate);
myDate.setDate(myDate.getDate() + 1);
alert(myDate); // 1st of March 2011 !
PS: Where you MAY have some issues are across the daylight savings time if you are creating dates using var d = new Date()
and don't normalise on hours by doing d.setHours(0,0,0,0)
afterwards
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With