我试过寻找有类似问题的人,但没有找到任何东西。
我在 JavaScript 中有两个日期,都设置为相同的值……平等测试在 == 上失败,但 >= 和 <= 评估为真。
下面是我在玩的代码:
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 上阅读过一篇关于类似问题的早期帖子,有人说日期对象可以像任何其他对象一样进行比较,而我发现的任何其他示例总是进行 < 或 > 类型的比较,从来没有完全相等,所以我无法就我做错的原因建立联系。
感谢你们两个,以及其他发布类似答案的人。