Reputation: 1254
I tried to get the day of a week with the getDay()
function of the Date
object in Javascript.
In theory it works fine, but sometimes there is a delay in the output, so if the function should return a "4", it returns a "1".
E.g.
var date= new Date("2009","04","30");
alert(date.getDay()); // the function returns 6, should return 4
var date= new Date("2009","05","01");
alert(date.getDay()); // the function returns 1, should return 5
I really don't know why this happens. This example comes from IE8. FF 3 behaves similar, but returns different values. The first one is 7, not 4. The second one is just like in IE8.
Any ideas why this happens?
Upvotes: 13
Views: 6127
Reputation: 700800
Because the month number is zero based, not one based.
new Date("2009","04","30")
creates a Date
object for the 30th of may, not the 30th of april.
(The reason why it's zero based is probably historic, i.e. it behaves the same as some method in a different system way back in time...)
Upvotes: 19