Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does getDay return incorrect values? (javascript)

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?

like image 819
SvenFinke Avatar asked May 07 '09 13:05

SvenFinke


1 Answers

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...)

like image 161
Guffa Avatar answered Oct 30 '22 04:10

Guffa