4

谁能向我解释为什么?

d = Date.parse('8/15/2012 '+'11:59:45 AM');
alert(d);
alert(Date.UTC(2012, 7, 15, 11, 59, 45));

​</p>

4

2 回答 2

7

如果未指定,则 Date.parse 假定为本地时间。

然而,UTC 显然是 UTC。

例如,我的计算机是 UTC -5(实际上是芝加哥 CDT),所以这两个时间戳对我来说恰好相隔 5 小时。

如果您指定 UTC,您将得到相同的结果:

Date.parse('8/15/2012 '+'11:59:45 AM UTC'); //1345031985000
Date.UTC(2012, 7, 15, 11, 59, 45); //1345031985000
于 2012-08-09T00:23:04.873 回答
-1

我会假设几个月的差异是您问题中的错字。

Date.parse 返回提供的日期与 1970 年 1 月 1 日午夜之间的差异。

Date.UTC 返回您的日期与格林威治标准时间1970 年 1 月 1 日午夜之间的差异。

如果您的时区设置为 GMT (UTC),您应该会看到两个调用返回的值相同。

于 2012-08-09T00:26:14.373 回答