通常当人们在寻找“时区”时,只需“UTC偏移”即可。例如,他们的服务器是UTC + 5,他们想知道他们的客户端是以UTC-8运行的。
在普通的旧javascript (new Date()).getTimezoneOffset()/60中将返回当前偏离UTC的小时数。
值得注意的是getTimezoneOffset()返回值的符号中可能出现的“陷阱” (来自MDN文档):
时区偏移是UTC与本地时间之间的差异(以分钟为单位)。请注意,这意味着如果本地时区落后于UTC,则偏移量为正,如果前置,则偏移量为负。例如,对于时区UTC + 10:00(澳大利亚东部标准时间,符拉迪沃斯托克时间,查莫罗标准时间),将返回-600。
但是,我建议您将day.js用于与时间/日期相关的Javascript代码。在这种情况下,您可以通过运行以下方式获得ISO 8601格式的UTC偏移:
> dayjs().format("Z")
"-08:00"
可能会提到客户端可以轻易伪造此信息。
(注意:这个答案最初推荐https://momentjs.com/,但是dayjs是一个更现代,更小的选择。)