javascript Date.parse和Date.UTC给出不同的结果

时间:2012-08-09 00:20:08

标签: javascript date

任何人都可以向我解释原因吗?

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-1)

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

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

Date.UTC返回您的日期与1970年1月1日午夜之间的差异 GMT

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