javascript seems to be using time zones backwards with Firefox
我在Firefox(版本21)的控制台中运行以下内容,我得到了我不期望的结果。
1 2 3 4 5
| new Date(1362891600000);
var date = new Date(1362891600000);
var time = date.getHours();
new Date(date.setHours(date.getHours() + 24)); |
结果真的让我失去了一个循环。
第一个日期显示为东部夏令时,而第二个日期显示为东部标准时间。 这完全倒退了。 IE或Chrome不会发生这种情况。
这里发生了什么?
-
请注意,虽然标签"东部夏令时"和"东部标准时间"是向后的,但实际使用的时区偏移(GMT-0500和GMT-0400)是正确的。如果数字时区偏移和时区名称不匹配,那么我无法想象你做错的任何事情都可能导致这种情况。因此我会说这是一个Firefox错误!
-
@Celada谢谢......这就是我所害怕的。我希望它是其中之一"它看起来像是XYZ的bug,但实际上是我实际上做错了什么"的场景类型。
-
这绝对是Firefox中的一个错误。您应该向他们报告。但是,请注意,在偏移之后的任何内容都是非标准的,并且支持在浏览器和操作系统之间变化很大。您可以将其显示给用户,但不要依赖它来做任何关键事情。
-
谢谢@Matt。如果你能做出答案我会接受它。
-
我在这里提交了一个bug(bugzilla.mozilla.org/show_bug.cgi?id=879261)
-
@Joseph - 你可以把你的链接粘贴到Firefox bug,它有助于跟踪面临同样问题的其他人吗?
-
@Rick,是的,我做了,这是我在你上面做的评论。
-
@Joseph - 我错过了!你是非常快的人:)
-
@Joseph - 你可以尝试一下这个stackoverflow.com/questions/8831338/date-issue-in-firefox吗?
-
@Rick感谢您的推荐。我的应用程序实际上并没有对日期做任何事情。我只是从服务器序列化它们然后将它们传递给第三方日期框架来处理一些解析,这就是我发现错误的地方。我的应用程序真正扮演中间人。
这绝对是Firefox中的一个错误。 您应该向他们报告。
但是,请注意,在偏移之后的任何内容都是非标准的,并且支持在浏览器和操作系统之间变化很大。
例如,某些浏览器显示时区名称,而其他浏览器显示缩写或内部ID。 此外,一些保留自己的字符串,一些使用操作系统返回的值。 在Windows上,有一个与Linux或Mac不同的时区数据库。 此外,某些浏览器可能使用语言,区域设置或区域设置来本地化此字符串。
如果您知道该值位于其自己的本地时区,则可以将其显示给用户。 但是,不要依赖它来做任何关键的事情。
-
Bug提交到这里:(bugzilla.mozilla.org/show_bug.cgi?id=879261)
-
Bug似乎又回到了FF 56.0.1(64位)。 看看这个bug的历史它似乎是固定的然后没有固定然后固定然后没有固定....