任何人都可以向我解释原因吗?
d = Date.parse('8/15/2012 '+'11:59:45 AM');
alert(d);
alert(Date.UTC(2012, 7, 15, 11, 59, 45));
答案 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),您应该会看到两个呼叫返回的值相同。