проблема с переменной даты в Javascript [дубликат]

На этот вопрос уже есть ответ здесь:

Сравните две даты с JavaScript 35 ответовДве одинаковые даты JavaScript нет равный 3 ответа
var dt_from = "2013/05/25";
var dt_to   = "2013/05/25";

if(dt_from == dt_to)
{
    alert("Both dates are Equal!");
}
else if(dt_from > dt_to)
{
    alert("From date should not be greater than todate!");
}
else if(dt_from < dt_to)
{
    alert("Okay!");
}

Приведенный выше код работает нормально. Но следующий код не работает:

var dt_from = new Date("2013/05/25");
var dt_to   = new Date("2013/05/25");

if(dt_from === dt_to)
{
    alert("Both dates are Equal!");
}
else if(dt_from > dt_to)
{
    alert("From date should not be greater than todate!");
}
else if(dt_from < dt_to)
{
    alert("Okay!");
}

этоif(dt_from === dt_to) не работает с приведенным выше кодом. Любая идея?

 Jean-Paul01 июн. 2013 г., 16:27
Вот, пожалуйста, сэр:stackoverflow.com/questions/492994/...

Ответы на вопрос(3)

Вы сравниваете ссылки на объекты с==, Хотя они могут представлять одну и ту же дату и время, они являются разными объектами. С помощью / работает так, как приведения объектов к числам (миллисекунды с эпохи), которые затем сравниваются. Если вы хотите проверить равенство, вы должны принудительно выполнить это преобразование вручную:

dt_from.getTime() == dt_to.getTime() // most explicit
// or
+dt_from == +dt_to // shortest
dt_from - dt_to == 0  // equivalent…
dt_from.valueOf() == dt_to.valueOf()
Number(dt_from) == Number(dt_from)
 Bergi01 июн. 2013 г., 17:15
Точно - строки против объектов.
 Dylan01 июн. 2013 г., 16:49
Благодарю. Я понимаю, что если мы используем переменную вроде var dt_from = "2013/05/25"; это сравнение качества работает, потому что они являются типами значений, но не, если мы используем var dt_from = new Date ("2013/05/25"); потому что мы используем ссылочные типы?

Вы можете сравнить даты, используя getTime (), вот так:

var a = new Date("2013/05/25");
var b = new Date("2013/05/25");

//compare dates
alert(a.getTime() === b.getTime())

рабочий пример:http://jsfiddle.net/HrJku/

Две даты никогда неидентичныйдаже если они ссылаются на один и тот же момент времени. Вам необходимо преобразовать их в строки или числа. Вы можете вычесть одно из другого, например:

var dt_from= new Date("2013/05/25");
var dt_to= new Date("2013/05/25");
var diff= dt_to-dt_from;


if(diff=== 0){
    alert("Both dates are Equal!");
}
else if(diff

Ваш ответ на вопрос