求助:Firefox返回异常时区Etc/GMT-1,Chrome正常显示Europe/Vienna
解决Firefox中Web应用时区显示错误的问题
看起来你遇到的是Firefox在时区检测上的典型问题,结合你的环境信息,我整理了几个排查和解决的步骤,按顺序试下来应该能搞定:
1. 先排查隐私插件的影响
你安装了NoScript和Privacy Badger这类隐私工具,它们很可能阻止了网站获取系统时区的权限,导致Firefox只能返回GMT偏移值(比如Etc/GMT-1)而非具体的时区名称。
- 暂时禁用所有插件:点击Firefox菜单→附加组件→扩展,把所有插件都禁用,然后重启浏览器。
- 重新执行命令
Intl.DateTimeFormat().resolvedOptions().timeZone,如果返回Europe/Vienna了,那就是插件的问题。接下来逐个启用插件,找到对应的那个,调整它的设置(比如允许当前网站获取时区/位置权限)。
2. 检查Firefox的时区权限设置
Firefox的隐私设置里可能全局或针对当前网站禁止了时区获取:
- 在地址栏输入
about:preferences#privacy,滚动到「权限」区域。 - 找到「位置」(部分旧版本可能叫「位置和时区」),点击「设置」,确保当前Web应用的网址被设为「允许」,或者全局没有勾选「阻止请求访问位置的网站」。
3. 紧急更新Firefox!
你的Firefox版本是59.0.2,这是2018年的旧版本了,Intl API和时区检测的很多bug在后续版本里都被修复了,尤其是和Windows 10夏令时配合的问题。
- 点击菜单→帮助→关于Firefox,Firefox会自动检测并安装最新稳定版,更新完成后重启浏览器再测试。
4. 验证系统时区设置(虽然Chrome正常,但还是确认下)
有时候Firefox读取系统时区的方式和Chrome不同,哪怕系统显示正确,也可能存在底层读取问题:
- 打开Windows控制面板→日期和时间→更改时区,确认时区是「(UTC+01:00) Vienna」。
- 可以先临时改成其他时区(比如UTC),应用设置,再改回Vienna时区,然后重启Firefox试试。
5. 强制Firefox使用指定时区(终极方案)
如果上面的方法都不行,可以直接在Firefox配置里强制设置时区:
- 在地址栏输入
about:config,点击「接受风险并继续」。 - 搜索
intl.datetimeformat.timezone.override,如果这个配置项不存在,右键→新建→字符串,名称就是这个,值设为Europe/Vienna。 - 重启Firefox,再执行命令应该就能得到正确的时区了。
内容的提问来源于stack exchange,提问作者codeling
相关产品推荐
相关产品推荐

