从浏览器获取客户端时区

2022-08-30 01:40:33

有没有可靠的方法从客户端浏览器获取时区?我看到了以下链接,但我想要一个更强大的解决方案。

使用 JavaScript 自动检测时区

JavaScript 中的时区检测


答案 1

五年后,我们有了一个内置的方法!对于现代浏览器,我会使用:

const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(tz);

这将返回 IANA 时区字符串,但不返回偏移量。在 MDN 参考中了解更多信息。

兼容性表 - 截至2019年3月,适用于全球90%的浏览器。在 Internet Explorer 上不起作用


答案 2

看看这个存储库页面织机,这是有帮助的

下载jstz.min.js并添加一个函数到你的html页面

<script language="javascript">
    function getTimezoneName() {
        timezone = jstz.determine()
        return timezone.name();
    }
</script>

并从显示标记调用此函数