if (date1.getTime() > date2.getTime()) {
alert("The first date is after the second date!");
}
Даты 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; это - простой способ проверить, является ли строка допустимой датой.
Можно использовать getTime () метод на объекте Даты получить метку времени (в миллисекундах) относительно 1 января 1970. При преобразовании двух дат в целочисленные метки времени можно тогда сравнить различие путем вычитания их. Результат будет в миллисекундах, таким образом, Вы просто будете делиться на 1 000 в течение многих секунд, тогда 60 в течение многих минут, и т.д.
Я использовал бы Дату valueOf метод вместо === или! ==
Кажется, что === сравнивает ссылки внутреннего Объекта и ничто относительно даты.
Вы можете попробовать добавить следующий код сценария, чтобы реализовать это:
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;
}