Firefox浏览器getTimezoneOffset返回错误时区偏移值问题求助
解决Firefox中getTimezoneOffset始终返回0的问题
排查与修复步骤
- 检查Firefox时区配置:打开设置→常规→语言和外观→时区,确认设置为「自动检测时区」或对应手动时区,而非UTC。
- 验证隐私设置:关闭隐私窗口,临时禁用增强跟踪保护后重试,避免隐私策略干扰时区检测。
- 替换为更可靠的API:
getTimezoneOffset()在Firefox部分场景下存在异常,可改用Intl API获取时区信息:// 获取标准时区标识符(如"Asia/Tokyo") const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; console.log(timeZone); // 计算当前时区偏移量(分钟) const offset = new Date().getTimezoneOffset(); // 或基于时区名称计算偏移(更稳定) const offsetString = new Date().toLocaleString('en-US', { timeZone, timeZoneName: 'short' }).split(' ').pop(); console.log(offsetString); - 重置指纹防护设置:在地址栏输入
about:config,搜索privacy.resistFingerprinting,确保该值为false——开启后Firefox会强制使用UTC时区,导致偏移量返回0。
内容的提问来源于stack exchange,提问作者Codseus
相关产品推荐
相关产品推荐

