Как я делаю сравнение Даты в JavaScript? [дубликат]

106
задан Community 23 May 2017 в 10:31
поделиться

5 ответов

if (date1.getTime() > date2.getTime()) {
    alert("The first date is after the second date!");
}

Ссылка на объект даты

220
ответ дан matt b 24 November 2019 в 03:48
поделиться

Даты JavaScript могут быть сравнены с помощью той же остальной части операторов сравнения использования типов данных:>, < < =,> =, ==! =, ===! ==.

, Если у Вас есть две даты A и B, затем < B, если A далее вернулся в прошлое, чем B.

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

var someDate = new Date("12/03/2008");

или, если строка Вы хотите, значение поля формы, поскольку кажется, что это могло бы быть:

var someDate = new Date(document.form1.Textbox2.value);

Должен та строка не быть чем-то, что JavaScript распознает как дата, Вы все еще получите объект Даты, но это будет "недопустимо". Любое сравнение с другой датой возвратит false. Когда преобразовано в строку это станет "Недопустимой Датой". Его getTime () функция возвратит NaN, и звонящий isNaN () в день сам возвратит true; это - простой способ проверить, является ли строка допустимой датой.

9
ответ дан user247702 24 November 2019 в 03:48
поделиться

Можно использовать getTime () метод на объекте Даты получить метку времени (в миллисекундах) относительно 1 января 1970. При преобразовании двух дат в целочисленные метки времени можно тогда сравнить различие путем вычитания их. Результат будет в миллисекундах, таким образом, Вы просто будете делиться на 1 000 в течение многих секунд, тогда 60 в течение многих минут, и т.д.

4
ответ дан Marc Novakowski 24 November 2019 в 03:48
поделиться

Я использовал бы Дату valueOf метод вместо === или! ==

Кажется, что === сравнивает ссылки внутреннего Объекта и ничто относительно даты.

2
ответ дан 24 November 2019 в 03:48
поделиться

Вы можете попробовать добавить следующий код сценария, чтобы реализовать это:

if(CompareDates(smallDate,largeDate,'-') == 0) {
    alert('Selected date must be current date or previous date!');
return false;
}

function CompareDates(smallDate,largeDate,separator) {
    var smallDateArr = Array();
    var largeDateArr = Array(); 
    smallDateArr = smallDate.split(separator);
    largeDateArr = largeDate.split(separator);  
    var smallDt = smallDateArr[0];
    var smallMt = smallDateArr[1];
    var smallYr = smallDateArr[2];  
    var largeDt = largeDateArr[0];
    var largeMt = largeDateArr[1];
    var largeYr = largeDateArr[2];

    if(smallYr>largeYr) 
        return 0;
else if(smallYr<=largeYr && smallMt>largeMt)
    return 0;
else if(smallYr<=largeYr && smallMt==largeMt && smallDt>largeDt)
    return 0;
else 
    return 1;
}  
0
ответ дан 24 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: