new Date () ведет себя по-разному в разных средах, почему? - PullRequest
0 голосов
/ 15 февраля 2019

, когда я определяю ту же дату в Chrome, он показывает ожидаемый результат.но когда я запускаю его в node.js, код ниже:

var date = new Date(2015, 1, 1);
console.log(date); // it displays: 2015-01-31T16:00:00.000Z

У меня вопрос почему не 2015-02-01 ?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Вы просто печатаете объект даты

var date = new Date(2015, 1, 1)
console.log(date); 

Для более подробного объяснения проверьте:

https://www.w3schools.com/js/js_date_formats.asp

Кроме того, если ваша цель имеетэтот формат 2015-02-01 проверьте https://momentjs.com/. Для вашего случая:

(с помощью moment.js)

moment(new Date(2015, 1, 1)).format('YYYY-MM-DD') // "2015-02-01"
0 голосов
/ 15 февраля 2019

Это проблема часового пояса. В Chrome напечатанные дата и время настраиваются в соответствии с информацией о вашем местном часовом поясе.Но дата в Node.js, которую вы напечатали, имеет строковый формат ISO String без настройки часового пояса.

Итак, оба new Date(2015, 1, 1) имеют одинаковое значение в Chrome и Node.js.

Попробуйте console.log(date.toLocaleDateString()).Вы получите 2015-2-1.

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