Проблема с вашим кодом в том, что вы сравниваете часть времени / даты, а не только дату.
Попробуйте этот код:
var myDate = new Date();
myDate.setDate(17);
myDate.setMonth(7);
myDate.setYear(2009);
//Delay code - start
var total = 0;
for(var i=0; i<10000;i++)
total += i;
//Delay code - end
var now = new Date();
console.log(now.getTime() == myDate.getTime());
Если вы сохраняете код цикла for (определяемый как «Delay code -start»), консоль будет показывать «false», а если вы удаляете код цикла for, консоль будет записывать «true», даже если в обоих случаях myDate 17.07.2009 и «сейчас» 17.07.2009.
Проблема в том, что в объекте JavaScript в датах хранятся как дата , так и время . Если вы хотите сравнить только часть даты, вы должны написать код.
function areDatesEqual(date1, date2)
{
return date1.getFullYear() == date2.getFullYear()
&& date1.getMonth() == date2.getMonth()
&& date1.getDate() == date2.getDate();
}
Эта функция выведет «true», если два javascript «date part» равны, игнорируя связанную часть времени.