Смещение часового пояса показывает неправильную дату и время - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь показать время в зависимости от местного часового пояса пользователя.Сервер экономит время на UTC.

Итак, у меня есть дата и время, сохраненные в моей базе данных.

2018-10-03 05:55:51 // my server is digital ocean

Так что теперь я пытаюсь утешить пользователя по местному времени.Мой часовой пояс установлен на Sylhet Bangladesh Смещение по времени составляет -360

var offset = new Date().getTimezoneOffset();
console.log(offset) // offset is -360
var testDateUtc = moment.utc("2018-10-03 05:55:51");
var localDate = moment(testDateUtc).utcOffset(offset);
console.log(localDate.format("YYYY-DD-MM hh:mm:ss"));

Приведенный выше код печатает неверную дату, но правильное время.2018-02-10 11:55:51 дата неверна.

Затем я изменил часовой пояс моего макинтоша на Dubai, который равен 2 hours different then my country

Для Дубая смещение составляет -240, и оно показывает время 2018-03-10 01:55:51, это означает, что дата верна, новремя не правильно.

Пожалуйста, помогите.Спасибо.

РЕДАКТИРОВАТЬ Это работает для большинства стран, которые я тестировал, как это offset = Math.abs(offset), поэтому всегда делает его положительным

1 Ответ

0 голосов
/ 03 октября 2018

Вам не нужно думать о смещении.Момент может сделать это для вас:

moment.utc("2018-10-03 05:55:51").local().format()

Кроме того, имейте в виду, что когда вы спрашивали о смещении в вашем коде, вы спрашивали о текущем смещении, которое может или не можетбыть смещением, действующим на момент конвертации.См. «Смещение! = Часовой пояс» в теге часового пояса вики .

...