Как узнать дату сегодня?
Я пытаюсь это, но не работает... почему?
<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) > >=
Разве обе даты не совпадают? Следовательно, я должен получить ==
напечатанный, но не произойдет...; (
Благодарим вас за помощь.
Ответы
Ответ 1
Они никогда не будут совпадать, потому что вы сравниваете два отдельных экземпляра объекта Date
.
Вам нужно получить общее значение, которое можно сравнить. Например .toDateString()
.
today.toDateString() == today2.toDateString(); // true
Если вы просто сравниваете два отдельных объекта Date
, даже если они имеют точно такое же значение даты, они все равно отличаются.
Например:
today == new Date( today ); // false
Они являются одним и тем же значением даты/времени, но не являются одним и тем же объектом, поэтому результат false
.
Ответ 2
function today(td) {
var d = new Date();
return td.getDate() == d.getDate() && td.getMonth() == d.getMonth() && td.getFullYear() == d.getFullYear();
}