Момент времени возвращает время UTC вместо местного времени

В настоящее время я работаю над проектом по созданию отчета Excel, когда пользователь нажимает кнопку «Загрузить отчет» из приложения. Все работает нормально, кроме имени файла, который загружается.

Проблема заключается в том, что когда мы проверяем из США (время CST с переходом на летнее время), предположим, что если пользователь загружает отчет 26 ноября, 21:00, имя файла становится 27 ноября 2020 года. Мы используем момент в node.js приложение для получения времени.

const date = moment().format('LL');

Может кто знает где я пропал. Если я прав, функция moment() вернет местное время вместо времени UTC. Но, кажется, получает время UTC вместо местного времени.

Нужно ли вместо этого использовать moment().local()?

Любая помощь могла бы быть полезна.

Заранее спасибо.


person Vishnu    schedule 27.11.2020    source источник
comment
Вы проверяли часовой пояс на сервере, на котором работает ваше внутреннее приложение?   -  person Anatoly    schedule 27.11.2020
comment
@Anatoly Code находится в бессерверной версии aws. это мы-запад2   -  person Vishnu    schedule 27.11.2020
comment
Что возвращает moment.locale()?   -  person Anatoly    schedule 27.11.2020
comment
вы пробовали момент часовые пояса   -  person Miky    schedule 27.11.2020
comment
@Анатолий перенастраивает ru.   -  person Vishnu    schedule 27.11.2020
comment
@Miky Нет, чтобы получить местное время, нам нужно получить часовой пояс из внешнего приложения?   -  person Vishnu    schedule 27.11.2020
comment
Да, теперь вы получаете часовой пояс сервера   -  person Anatoly    schedule 27.11.2020
comment
@ Анатолий, а как это исправить? Любая идея о том, как получить местный часовой пояс.   -  person Vishnu    schedule 27.11.2020
comment
вы можете отправить его как смещение часового пояса в URL-адресе, например: somesite.com/api/report?offset=-180   -  person Anatoly    schedule 27.11.2020
comment
@ Анатолий, ладно, можем ли мы тогда перевести на местное время без момента? Можете ли вы добавить то же самое в ответ?   -  person Vishnu    schedule 27.11.2020


Ответы (1)


Я полагаю, вы должны передать смещение часового пояса пользователя в URL-адресе:

// -300 - (CST with daylight savings)
https://somesite.com/api/report?offset=-300 

И на бэкенде изменить смещение с помощью moment.js следующим образом:

// old versions of a moment.js
const date = moment().zone(offset).format('LL')
// new versions of a moment.js
const date = moment().utcOffset(offset).format('LL')
person Anatoly    schedule 27.11.2020