我正在尝试为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值应该更小?
答案 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';