我正在尝试这个但是没有工作......为什么?
<html>
<body>
<script type="text/javascript">
var today=new Date(); //today is Nov 28, 2010
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
document.write(today+" ");
var today2 = new Date("November 28, 2010");
document.write(today2 + " ");
if (today == today2) { document.write("==");
if (!(today > today2) && !(today < today2) ) {document.write("== ");}
if (today > today2) { document.write("> ");}
if (today >= today2 ){ document.write(">= ");}
if (today < today2 ) { document.write("< ");}
if (today <= today2 ){ document.write("<= ");}
</script>
</body>
</html>
我总是得到这个:
Sun Nov 28 2010 00:00:00 GMT+0900 (JST) Sun Nov 28 2010 00:00:00 GMT+0900 (JST) > >=
这两个日期不一样吗?因此,我应该==
打印但是没有发生......;(
提前感谢您的帮助。
答案 0 :(得分:67)
它们永远不会匹配,因为您正在比较两个单独的Date
对象实例。
您需要获得一些可以比较的共同价值。例如.toDateString()
。
today.toDateString() == today2.toDateString(); // true
如果您只是比较两个单独的Date
个对象,即使它们具有完全相同的日期值,它们仍然是不同的。
例如:
today == new Date( today ); // false
它们是相同的日期/时间值,但不是同一个对象,因此结果为false
。
答案 1 :(得分:20)
function today(td) {
var d = new Date();
return td.getDate() == d.getDate() && td.getMonth() == d.getMonth() && td.getFullYear() == d.getFullYear();
}
答案 2 :(得分:0)
您可以通过将给定日期和今天的日期设置为00:00:00
来进行比较,然后进行比较。
代码示例如下:
function checkDateIsToday (today, givenDate) {
if(today.setHours(0,0,0,0) === givenDate.setHours(0,0,0,0)) {
console.log('Date is todays date');
} else {
console.log('Date is not todays date');
}
}
checkDateIsToday(new Date(), new Date('2020-07-10'));