【问题标题】:Incorrect timezone in Firefox, compared to Safari, using javascript Date()与 Safari 相比,Firefox 中的时区不正确,使用 javascript Date()
【发布时间】:2011-07-09 17:41:42
【问题描述】:

以下代码

var date = new Date();
console.log( date );

给我

Sun Mar 06 2011 21:41:36 GMT+1300 (NZST) {}

在 Firefox 中,但是

Sun Mar 06 2011 21:40:51 GMT+1300 (NZDT)

在 Safari 中(这是正确的)。

我的系统日期和时间设置为 NZDT,所以我想知道 firefox 从哪里获取 NZST。请注意,UTC 偏移量 (+1300) 在两种情况下都是正确的。

如何让 Firefox 显示正确的时区:NZDT?

【问题讨论】:

  • 看起来像是标签错误,虽然很烦人
  • 这个错误似乎已经在 Firefox 4 中得到修复;我在 3.6 中得到了不正确的时区,但在 4.0 beta 12 中没有。
  • 你真的应该使用 jquery 否则你不会得到这个错误
  • @Carnotaurus:我确实使用 jQuery,但不用于日期。如何使用它来阻止这个错误?

标签: javascript firefox timezone


【解决方案1】:

您不应依赖该输出,因为它在其他浏览器 (IE) 中有所不同,而应使用 getTimezoneOffset 方法。

var date = new Date;
console.log( date.getTimezoneOffset() );

偏移量会随着夏令时而改变,但有一些方法可以解决这个问题。

【讨论】:

    【解决方案2】:

    如果除了“NZST”之外的一切都是你想要的,你可以做一个简单的文本替换:

    console.log(date.toString().replace('NZST', 'NZDT'));
    

    请注意,这实际上只是对显示问题的简单修复,并没有解决根本原因。

    【讨论】:

    • 而且在一年中新西兰实际上在 NZST 上的时间是不正确的。
    【解决方案3】:

    这是在 Firefox v4 及更高版本中修复的错误。

    【讨论】:

    • 我以正确答案的形式重新表述另一条评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2017-12-05
    相关资源
    最近更新 更多