【发布时间】:2017-02-24 09:23:05
【问题描述】:
我在 Windows 7(64 位)机器上使用 Firefox。我最近的任务是修复一个错误,该错误导致此代码产生了一些错误的本地时间戳
var d = new Date(0);
d.setSeconds(epoch);
我不知道为什么要这样写,有充分的理由这样做吗?如果我直接使用new Date(epoch * 1000); 设置它,它会起作用,setUTCSeconds 也可以。
第二个问题是 Firefox 说“东部标准时间”实际上是白天时间。 Chrome 不这样做。
Javascript 是一种语言,我知道为脚本提供服务的基础知识,但是,我来自 C 和 C++。我在这里缺少什么吗?我已经查看了Date,但我无法找出修复代码的最佳方法,或者为什么它是这样编写的。都具有相同的getTimezoneOffset,如下所示。
var d = new Date(1476428709 * 1000);
alert(d.toTimeString());
Chrome:03:05:09 GMT-0400(东部夏令时间)。价值:1476428709000
Firefox:03:05:09 GMT-0400(东部标准时间)。价值:1476428709000
var d = new Date(0);
d.setSeconds(1476428709);
alert(d.toTimeString());
Chrome:02:05:09 GMT-0400(东部夏令时间)。价值:1476425109000
Firefox:02:05:09 GMT-0400(东部标准时间)。价值:1476425109000
Firefox 使用
setUTCSeconds:03:05:09 GMT-0400(东部标准时间):1476428709000
编辑:白天时间问题似乎是 Firefox 中的一个错误:
879261 – javascript seems to be using time zones backwards
【问题讨论】:
-
您似乎得到了相同的时间戳,只是字符串表示不同,这并不重要,因为您通常不会将其用于任何事情,您会使用 Date 方法获取月、日、年等。
标签: javascript date firefox