Почему getDay возвращает неправильные значения? (JavaScript) - PullRequest
13 голосов
/ 07 мая 2009

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

* 1005 Е.Г. *

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.

Есть идеи, почему это происходит?

1 Ответ

19 голосов
/ 07 мая 2009

Поскольку номер месяца основан на нуле, а не на одном.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...