Firefox无法在Windows上读取本地时间

时间:2016-01-21 17:23:48

标签: javascript datetime firefox

我在使用MomentJS库时发现了Windows上的Firefox中出现的错误。但是,这似乎是Firefox Date()本身的一个错误。

问题在于使用getTimezoneOffset()函数获取本地时间以及getHours()函数等其他本地时间函数。它在Windows上根本没有获得本地时间偏移。其他浏览器,包括OSX上相同版本的Firefox,可以获得正确的时间。

这是我的设置:

OSX:10.10.5

  • Chrome:48.0.2564.82
  • Firefox:43.0.4

Windows:7,SP1,最新更新

  • Chrome:48.0.2564.82
  • Internet Explorer 11.0.9.9600.18163
  • Firefox:43.0.4

OSX:

  • 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中的一个错误。那是对的吗?我是否对该功能(以及其他本地时区功能)的工作方式有任何误解?

1 个答案:

答案 0 :(得分:2)

事实证明,Firefox会在Windows上寻找TZ环境变量,并尝试使用它来设置本地时区。我发现这个old Mozilla bug report帮我解决了这个问题。

我们在服务器端应用程序中使用TZ环境变量。我重命名了变量,现在一切都按预期工作了。