Подтвердить что ты не робот

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

Мне нужно выяснить, совпадают ли две даты, выбранные пользователем, в Javascript. Даты передаются этой функции в String ( "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.

4b9b3361

Ответ 1

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

EDIT:

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

Ответ 2

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

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

Ответ 3

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

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

  • if( d1.toString() === d2.toString())
  • if( +d1 === +d2)