getfullyear - ¿Por qué getDay devuelve valores incorrectos?(javascript)
javascript date (1)
Traté de obtener el día de una semana con la función getDay()
del objeto Date
en Javascript. En teoría, funciona bien, pero a veces hay un retraso en la salida, por lo que si la función devuelve un "4", devuelve un "1".
P.ej
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
Realmente no sé por qué sucede esto. Este ejemplo proviene de IE8. FF 3 se comporta de forma similar, pero devuelve valores diferentes. El primero es 7, no 4. El segundo es como en IE8.
¿Alguna idea de por qué sucede esto?
Porque el número de mes se basa en cero, no en uno.
new Date("2009","04","30")
crea un objeto Date
para el 30 de mayo , no el 30 de abril.
(La razón por la cual está basada en cero es probablemente histórica, es decir, se comporta de la misma manera que un método en un sistema diferente en el pasado ...)