Я использую сторонний API вместе с Moment JS для некоторого форматирования даты в Javascript.
Сторонний API группирует некоторые данные / результаты с epoch
датой в миллисекундах, например:
1559260800000
Это равно :
Время по Гринвичу: пятница, 31 мая 2019 года 00: 00: 00
Ваш часовой пояс: пятница, 31 мая 2019 года 01:00:00 по Гринвичу + 01:00 по летнему времени
Относительно: через 15 дней
Мы используем календарь Flatpickr для выбора даты. Когда дата выбрана, она возвращает выбранную дату в местном формате даты, таком как:
Fri May 31 2019 00:00:00 GMT+0100 (British Summer Time)
Если я использую момент для преобразования, я получаю следующее:
var epoch = moment.utc(dayElem.dateObj).valueOf();
1559257200000
Это соответствует:
Время по Гринвичу: четверг, 30 мая 2019 года 23: 00: 00
Ваш часовой пояс: пятница, 31 мая 2019 года 00:00:00 GMT + 01: 00 DST
Относительно: через 15 дней
Я понимаю, что проблема связана с местным часовым поясом, первое из которых - GMT 00:00:00, а второе - GMT 00:01:00, но я не уверен, как его решить.
Кроме того, более поздние даты в году, такие как декабрь, когда мы находимся за пределами BST, - это время по Гринвичу, поэтому мне нужно, чтобы и тогда это работало.