Moment.format () изменяет время в соответствии с часовым поясом - PullRequest
1 голос
/ 20 сентября 2019

Я использую Moment.js для представления данных, поступающих из серверной части.В моем случае у меня есть дата, представленная в этом формате «2015-01-02T00: 00: 00Z».Затем я передаю его в Moment.Format ()

moment("2015-01-02T00:00:00Z").format('LLL')

, из этого получается «01.01.2015», что является другой датой.Более подробно, мы сталкиваемся с такой ошибкой, когда часовой пояс компьютера установлен на что-то другое.Итак, если я нахожусь там, где я сейчас нахожусь, скажем, Рим и часовой пояс здесь настроены правильно, moment.Format () возвращает правильную дату «01.02.2015».Если вместо этого я изменяю часовой пояс в системе моего компьютера и, например, ставлю Lima, то он переходит к «01.01.2015».Как мне убедиться, что указана правильная дата вне зависимости от часового пояса?Заранее спасибо!

1 Ответ

0 голосов
/ 20 сентября 2019

О, боже ... вот мы снова идем с датами: O

Хорошо, так что начнем, взгляните на это предложение, которое вы написали

Как мне сделатьВы уверены, что правильная дата отображается вне зависимости от часового пояса?

И теперь я задаю вам этот вопрос:

Греческий парень (я) хочет встречаться с вами.Я хочу пригласить вас на ужин, скажем, в этот понедельник 2019/09/23 20: 00: 00

Теперь, потому что я сказал вам, что я грек, вы можете сделать вывод из разницы в наших часовых поясах, чтомой "понедельник 2019/09/23 20:00:00" на самом деле ваш "понедельник 2019/09/23 12:00:00".И вы можете приходить вовремя, хотя мой ужин на самом деле ваш обед.

Я надеюсь, что вы поняли мою точку зрения, теперь перейдите к вашему делу: вы либо:

  1. Поддерживать дату людей только в том случае, если они происходят из того же часового пояса, что и ваша команда разработчиков (не очень круто для проекта, но во многих случаях компании не нужно сообщать даты людям из других часовых поясов)
  2. Вам придетсяукажите часовой пояс, с которым ваша дата была «создана», чтобы он мог разрешить разницу с местным временем каждого пользователя.
  3. Все даты будут преобразованы в UTC, поэтому сервер будет только «говорить»Время UTC, в то время как клиенты могут свободно конвертировать в нужный часовой пояс.Вам не нужно указывать «исходный часовой пояс» из-за соглашения о том, что ваши даты всегда в формате UTC (что подразумевает «исходный часовой пояс», фактически равный 0)

Я надеюсь, что вышеизложенное поможет вам получить некоторыебазовое понимание даты выпуска.

...