我曾试图寻找类似问题的解答,但没有找到。
我的JavaScript中有两个日期,两个日期都被设置为相同的值...使用 == 进行相等测试失败,但是 >= 和 <= 却返回true。
以下是我正在使用的代码:
var startDate = new Date( 2011, 7, 30, 0, 0, 0, 0 );
var dt = new Date( 2011, 7, 30, 0, 0, 0, 0 );
if( startDate == dt )
document.write('They Equal<br />');
if( startDate > dt )
document.write('Start Date is > dt<br />');
if( startDate >= dt )
document.write('Start Date is >= dt<br />');
if( startDate < dt )
document.write('Start Date is < dt<br />');
if( startDate <= dt )
document.write('Start Date is <= dt<br />');
if( dt == startDate )
document.write('They Equal<br />');
if( dt > startDate )
document.write('dt > startDate<br />');
if( dt >= startDate )
document.write('dt >= Start Date <br />');
if( dt < startDate )
document.write('dt < Start Date <br />');
if( dt <= startDate )
document.write('dt <= Start Date <br />');
document.write( dt );
document.write( '<br />');
document.write( startDate );
有没有人遇到过类似的问题,或者是我做错了什么根本性的事情?
我在Internet Explorer(9),Firefox 5+和Chrome中进行了测试。
更新:
所以有两个人给出了我问题的很好的答案,我感谢他们俩:xdazz和DaveRandom。我之前在stackoverflow.com上读到一个类似问题的早期帖子,一个家伙说日期对象可以像其他任何对象一样比较,而任何其他例子都是使用<或>类型的比较,从未进行完全相等的比较,因此我无法明白为什么我做错了。
感谢你们两个,以及其他给出类似答案的人。