JavaScript日期getTime()不一致

时间:2011-09-01 17:11:23

标签: javascript

我正在尝试为jQuery实现tablesorter plugin的解析器,并且我对日期的getTime()值有这种奇怪的行为。以下代码:

var dateOne = '03/04/2010';
var dateTwo = '28/10/2008';
var dateOneTime = new Date(dateOne).getTime();
var dateTwoTime = new Date(dateTwo).getTime();
var diff = dateOneTime - dateTwoTime;

alert('dateOneTime: ' + dateOneTime + '\ndateOne: ' + dateOne + '\nDateTwoTime: ' + dateTwoTime + '\ndateTwo : ' + dateTwo + '\none - two: ' + diff);

给2010年的getTime()结果大约1267亿左右,2008年的结果为1271亿。因此,从dateOne中减去dateTwo会给出一个负数。为什么是这样?当然,2008年的dateTwo值应该更小?

4 个答案:

答案 0 :(得分:4)

日期需要MM/DD/YYYY

您正在传递DD/MM/YYYY

答案 1 :(得分:1)

默认情况下,格式为mm/dd/yyyy。因此,28/10/2008被解释为04/10/2010

答案 2 :(得分:1)

在JS via a string中初始化日期时,它应该是符合RFC1123的格式 - 您的格式不是。

答案 3 :(得分:0)

new Date(dateTwo)被错误地解释为2010年4月10日,因为Date构造函数期望MM / DD / YYYY而不是您传递的DD / MM / YYYY。

var dateOne = '04/03/2010';
var dateTwo = '10/28/2008';