Преобразовать время из другого часового пояса в местный часовой пояс, используя момент / момент-часовой пояс - PullRequest
0 голосов
/ 21 января 2019

У меня есть объект tradingHours

tradingHours = [
 {
  dayCode: "Monday",
  TimeZone: "Australia/Sydney",
  OpenHour: "08:30:00",
  CloseHour: "17:00:00"
 }
]

Что я хочу сделать, это отобразить локальный openTime / closeTime на основе местного часового пояса.

Например, мой местный часовой пояс будет "Австралия / Перт", разница - три часа, затем openTime - "05:30", а closeTime - "14:00".

Я прошел через пару решений, которые нашел в другом посте, но ни одно из них мне не нужно.

Я мог бы вычислить разные минуты (-180), а затем выполнить некоторое кодирование, чтобы вычислить соответствующее время.

Однако я считаю, что должен быть лучший способ достичь этого.

Благодарю за любую помощь.

1 Ответ

0 голосов
/ 23 января 2019

Вы можете использовать функцию .tz момента-часового пояса следующим образом:

var tradingHours = [
 {
  dayCode: "Monday",
  TimeZone: "Australia/Sydney",
  OpenHour: "08:30:00",
  CloseHour: "17:00:00"
 }
]

var a = moment.tz(tradingHours[0].OpenHour, 'HH:mm:ss', tradingHours[0].TimeZone)

console.log(a.tz('Australia/Perth').format('DD/MM/YYYY HH:mm:ss ZZ'));
// or
console.log(a.local().format('DD/MM/YYYY HH:mm:ss ZZ'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>
...