javascript - getday - js datetime format



Почему getDay возвращает неверные значения?(JavaScript) (1)

Я попытался получить день недели с getDay() объекта Date в Javascript. Теоретически это работает нормально, но иногда есть задержка в выходе, поэтому, если функция должна возвращать «4», она возвращает «1».

Например

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

Я действительно не знаю, почему это происходит. Этот пример относится к IE8. FF 3 ведет себя аналогично, но возвращает разные значения. Первый - 7, а не 4. Второй - как в IE8.

Любые идеи, почему это происходит?

https://src-bin.com


Answer #1

Потому что число месяца основано на нулевом значении, а не на одном.

new Date("2009","04","30") создает объект Date для 30-го мая , а не 30-го апреля.

(Причина, почему он основан на нулевом значении, вероятно, является историческим, т. Е. Ведет себя так же, как и какой-то метод в другой системе, во времени ...)





datetime