2016-01-04 7 views
0

Для следующей даты:Некорректное день недели в JavaScript

Wed Jan 06 2016 02:00:00 GMT+0200 (IST) 

Следующее выражение (которое должно возвращать день недели 1 января)

new Date(date.getUTCFullYear(), 0).getUTCDay() 

возвращает 4 вместо того, ожидаемый 5 (это была пятница ...)

Почему это не работает?

ответ

4

Я думаю, что это потому, что new Date больше не в UTC, а getUTCDay есть. Вместо этого используйте getDay.

$ новая дата (2016, 0)

Пт 1 января 2016 00:00:00 GMT + 0200 (EET)

Обратите внимание на +0200 часть.

0

Я надеюсь, что этот пример прояснит ваши сомнения

Я в часовом поясе IST (GMT + 0530) и в зависимости от времени суток, либо UTC один день позади или в тот же день. Отсюда и результат.

var d1 = new Date(2016, 0, 6, 5, 29, 0); 
var d2 = new Date(2016, 0, 6, 5, 30, 0); 
console.log(d1.getUTCDay(), d2.getUTCDay()); //logs 2 3 
Смежные вопросы