0

我有一个 tradingHours 对象

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

我想要做的是根据本地时区显示本地 openTime/closeTime。

例如,我的本地时区是“澳大利亚/珀斯”,不同的是三个小时,那么 openTime 是“05:30”,closeTime 是“14:00”。

我经历了在其他帖子中找到的几个解决方案,但没有一个是我需要的。

我可以计算不同的分钟(-180),然后做一些编码来计算相应的时间。

但是,我相信必须有更好的方法来实现它。

感谢任何帮助。

4

1 回答 1

0

您可以使用 moment-timezone 的 .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>

于 2019-01-23T09:46:37.707 回答