跨浏览器(Firefox和Chrome)和跨平台(OSX和Linux)验证:
> Date.parse('2012-01-01')
1325376000000
> Date.parse('1/1/2012')
1325394000000
相关: https://github.com/portablemind/compass_agile_enterprise/wiki/Javascript-Date.parse-bug%3F
答案 0 :(得分:3)
格式2012-01-01被解释为符合ISO 8601,并隐含Z时区(+00,协调世界时)。格式为1/1/2012,如果接受(这取决于实现),则视为本地时间。
要获得更一致的结果,请使用Globalize.js等库。
答案 1 :(得分:1)
如果您将Z添加到最后,这将保证您始终表示UTC。
> Date.parse('2012-01-01')
1325376000000
> Date.parse('1/1/2012')
1325394000000
> Date.parse('1/1/2012 Z')
1325376000000
答案 2 :(得分:0)
我编写了如下代码:
var a = Date.parse('2012-01-01');
var b = Date.parse('2012-01-01');
var c = Date.parse('1/1/2012');
alert( a + ' - ' + b + ' - ' + c );
结果是,
1325376000000 - 1325376000000 - 1325376000000
我为a和b编写相同代码的原因是,http://www.w3schools.com/jsref/jsref_parse.asp说,Date.parse返回一个毫秒值,这些行之间是否经过了时间。
我正在使用Firefox 9.0.1,结果是正确的。