Javascript Luxon GMT время для локали - PullRequest
0 голосов
/ 17 октября 2018

У меня есть отметка времени из моей базы данных в зоне gmt.Как я могу отобразить время в зависимости от часового пояса пользователя?В настоящее время я получаю время как это

return luxon.DateTime.fromSQL(created_at).setZone('local');

Возвращает время в гтм.

Ответы [ 2 ]

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

Более понятный способ справиться с этим - просто сказать синтаксическому анализатору, что время выражено в GMT:

DateTime.fromSQL(current_time, {zone: "utc"}).toLocal()

Чтобы объяснить немного больше, то, что происходит в вашем оригинале, это то, что строка времениподразумевается как время по Гринвичу, но Люксон этого не знает.Таким образом, она интерпретирует строку как местное время, которое отличается от времени, которое вы подразумевали под смещением.Но если Luxon знает, что «это выражено в GMT», то в первую очередь он получит правильное время.

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

Проблема решена с помощью этого метода:

let offset = - (new Date().getTimezoneOffset() / 60);
return luxon.DateTime.fromSQL(created_at).plus({hours: offset}).toLocaleString(luxon.DateTime.TIME_SIMPLE)
...