我遇到了javascript日期比较的问题。我可以在控制台中输出对象,一切看起来都正确,但它们总是评估为假。
var date1 = new Date('2013','01','01');
var date2 = new Date('2015','01','01');
console.log("date1=" + date1);
console.log("date2=" + date2);
console.log("date1 > date2" + date1 > date2);
console.log("date1 < date2" + date1 < date2);
>>date1=Fri Feb 01 2013 00:00:00 GMT-0500 (EST)
>>date2=Sun Feb 01 2015 00:00:00 GMT-0500 (EST)
>>false
>>false
答案 0 :(得分:2)
这是operator precedence的问题:
运算符优先级确定运算符的计算顺序。首先评估具有更高优先级的运算符。
这会生成包含"date1 > date2"
和date1
的字符串,并将其与date2
进行比较:
"date1 > date2" + date1 > date2
这会生成一个包含"date1 > date2"
的字符串以及date1 > date2
的比较:
"date1 > date2" + (date1 > date2)
此外,您不应直接比较日期对象。