Определение равенства дат в Javascript


Мне нужно выяснить, являются ли две даты, выбранные пользователем, одинаковыми в Javascript. Даты передаются этой функции в виде строки ("xx/xx/xxxx").Это все, что мне нужно для детализации.

вот мой код:

        var valid = true;
    var d1 = new Date($('#datein').val());
    var d2 = new Date($('#dateout').val());
    alert(d1+"n"+d2);
    if(d1 > d2) {
        alert("Your check out date must be after your check in date.");
        valid = false;
    } else if(d1 == d2) {
        alert("You cannot check out on the same day you check in.");
        valid = false;
    }

предупреждение javascript после преобразования дат в объекты выглядит следующим образом:

Вт 25 января 2011 00:00: 00 GMT-0800 (Тихоокеанское стандартное время)

Вт 25 января 2011 00:00: 00 GMT-0800 (Тихоокеанское стандартное время)

в тест, чтобы определить, если дата больше, чем дата 1 2 работает. Но с помощью == или === операторы не изменяют действительное значение false.

3 54

3 ответа:

использовать getTime() метод. Он будет проверять числовое значение даты, и он будет работать как для проверок больше/меньше, так и для проверок equals.

EDIT:

if (d1.getTime() === d2.getTime())

Если вы не хотите называть getTime() просто попробуйте это:

(a >= b && a <= b)

var d1 = new Date($('#datein').val());
var d2 = new Date($('#dateout').val());

использовать два простых способа проверить равенство

  1. if( d1.toString() === d2.toString())
  2. if( +d1 === +d2)