![](/img/trans.png)
[英]Calculate the UTC offset given a TimeZone string in JavaScript
[英]how to calculate timezone offset from given timezone
我有一个案例,我试图从选定的时区计算 timezoneOffset。
我将数据库中的时间保存为 UTC 格式的示例,现在我正在根据用户的位置/时区计算时区并设置时区偏移量。
如果从哪个时区开始,我如何创建-330
偏移量的映射,我想为所有时区计算它。 示例 [{ timezone: 'Australia/Sydney', offset: '660' }] 等等..
这样我就可以搜索 -330 偏移量是哪个 timeozne。
如果是哪个时区,假设-330 偏移量? 我可以在哪里创建带有偏移量和时区的映射。
示例用户 a 来自Australia/Sydney
,那么如何检查与 UTC 的时区偏移量?
请注意,我有多个时区来支持总共 30 多个时区。
我想要一些非常准确的计算。
我知道 momentjs 使用它我可以做到,但突然不知道怎么做。
与momentjs我得到Australia/Sydney
的UTCoffser //660
谁能帮我在这里推算出准确的日期?
如果您的时区有IANA名称,则可以将其传递到Intl.DateTimeFormat
并过滤掉并计算偏移量:
const getUTCOffset = timezone => Intl.DateTimeFormat([], {timeZone: timezone, timeZoneName: 'shortOffset'}).formatToParts().find(o => o.type === 'timeZoneName').value.match(/\-?\d+/)[0]*60; console.log(getUTCOffset('Australia/Sydney'))
如果您在用户的浏览器中运行此代码并希望使用用户的时区,那么它就更简单了:
new Date().getTimezoneOffset()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.