我在使用MomentJS库时发现了Windows上的Firefox中出现的错误。但是,这似乎是Firefox Date()
本身的一个错误。
问题在于使用getTimezoneOffset()函数获取本地时间以及getHours()函数等其他本地时间函数。它在Windows上根本没有获得本地时间偏移。其他浏览器,包括OSX上相同版本的Firefox,可以获得正确的时间。
这是我的设置:
OSX:10.10.5
Windows:7,SP1,最新更新
Chrome:
new Date()
# Thu Jan 21 2016 10:07:23 GMT-0700 (MST)
new Date().getTimezoneOffset()
# 420 (minutes, correct)
new Date().getHours()
# 10 (this is correct, since I am -07:00 UTC)
Firefox:
new Date()
# Date 2016-01-21T17:03:49.807Z
new Date().getTimezoneOffset()
# 420 (minutes, correct)
new Date().getHours()
# 10 (correct)
Chrome:
new Date()
# Thu Jan 21 2016 10:10:41 GMT-0700 (MST)
new Date().getTimezoneOffset()
# 420 (minutes, correct)
new Date().getHours()
# 10 (correct)
Internet Explorer:
new Date()
# Thu Jan 21 2016 10:16:09 GMT-0700 (MST)
new Date().getTimezoneOffset()
# 420 (minutes, correct)
new Date().getHours()
# 10 (correct)
Firefox:
new Date()
# Date 2016-01-21T17:12:43.807Z
new Date().getTimezoneOffset()
# 0 (INCORRECT)
new Date().getHours()
# 17 (INCORRECT - No timezone offset)
据我所知,这只是Windows上的Firefox中的一个错误。那是对的吗?我是否对该功能(以及其他本地时区功能)的工作方式有任何误解?
答案 0 :(得分:2)
事实证明,Firefox会在Windows上寻找TZ
环境变量,并尝试使用它来设置本地时区。我发现这个old Mozilla bug report帮我解决了这个问题。
我们在服务器端应用程序中使用TZ
环境变量。我重命名了变量,现在一切都按预期工作了。