Проблема с использованием Date() в node.js

Кто-нибудь может сказать мне, почему, если я наберу это:

var datedate1 = new Date(2017, 05, 17);
console.log(datedate1);

Консоль показывает: 2017-06-16T22:00:00.000Z?

Спасибо.


person sergiteru    schedule 18.07.2017    source источник
comment
Потому что вы проигнорировали два общеизвестных факта; во-первых, что месяц считается от 0 до 11, а во-вторых, что существуют часовые пояса.   -  person CBroe    schedule 18.07.2017
comment
См. неожиданное поведение даты javascript или setDate() неожиданное поведение неправильный месяц, есть много дубликатов.   -  person RobG    schedule 18.07.2017


Ответы (1)


Здесь есть 2 проблемы:

  1. Месяц индексируется 0, чтобы получить 5 нужно пройти через 04 для месяца
  2. Используемая дата использует время UTC до локализации вашего часового пояса (GMT-2)? поэтому вам нужно будет учитывать свой часовой пояс и пройти через эти аргументы.

Другой вариант — рассмотреть возможность использования такой структуры, как момент https://www.npmjs.com/package/moment

person Greg Rebisz    schedule 18.07.2017
comment
Re Используемая дата использует время UTC до локализации вашего часового пояса Смещение часового пояса хоста используется для генерации даты в первую очередь, проблема здесь в том, что выходной часовой пояс UTC+00:00 . toString обычно использует local. Я бы не назвал moment.js фреймворком, это библиотека (то есть набор полезных функций). - person RobG; 18.07.2017