Определение равенства даты в Javascript - PullRequest
59 голосов
/ 03 января 2011

Мне нужно выяснить, совпадают ли две даты, выбранные пользователем, в 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.Но использование операторов == или === не изменяет действительный на ложный.

Ответы [ 3 ]

119 голосов
/ 03 января 2011

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

РЕДАКТИРОВАТЬ:

if (d1.getTime() === d2.getTime())
15 голосов
/ 11 сентября 2013

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

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

2 голосов
/ 21 марта 2017
var d1 = new Date($('#datein').val());
var d2 = new Date($('#dateout').val());

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

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