Почему объект JS Date изменяется наUTCString 10 октября?
new Date('2017-10-9').toUTCString()
"Sun, 08 Oct 2017 23:00:00 GMT"
new Date('2017-10-10').toUTCString()
"Tue, 10 Oct 2017 00:00:00 GMT"
Я пишу их в Великобритании. BST заканчивается 29 октября. Что здесь происходит?!
В первом примере дата анализируется как локальная дата, а во второй - как дата UTC. Чтобы разобрать первую дату в формате UTC, добавьте 0
до 9
.
console.log(new Date('2017-10-09').toUTCString()); // Mon, 09 Oct 2017 00:00:00 GMT
Непоследовательности в синтаксическом анализе даты, поэтому, вы всегда должны передавать дату в формате ISO-8601 конструктору Date
. Вы также можете использовать библиотеку, например Moment.js.