У меня две строковые даты в формате m/d/yyyy. Например, "11/1/2012", "1/2/2013". Я пишу функцию в JavaScript для сравнения двух строковых дат. Подпись моей функции
bool isLater(string1, string2),
, если дата, переданная строкой1, позже даты, переданной строкой2, возвращает true, в противном случае - false.
Итак, isLater ( "1/2/2013", "11/1/2012" ) должен возвращать true. Как написать функцию JavaScript для этого?
Как сравнить две строковые даты в javascript?
Ответ 1
var d1 = Date.parse("2012-11-01");
var d2 = Date.parse("2012-11-04");
if (d1 < d2) {
alert ("Error!");
}
Ответ 2
Разберите даты и сравните их, как вы бы цифры:
function isLater(str1, str2)
{
return new Date(str1) > new Date(str2);
}
Если вам нужно поддерживать другой формат даты, рассмотрите библиотеку, такую как date.js.
Ответ 3
Вы можете просто сравнить 2 строки
function isLater(dateString1, dateString2) {
return dateString1 > dateString2
}
Тогда
isLater("2012-12-01", "2012-11-01")
возвращает true, когда
isLater("2012-12-01", "2013-11-01")
возвращает false
Ответ 4
Если ваша дата не в формате standy yyyy-mm-dd (2017-02-06), например, 20/06/2016. Вы можете использовать этот код
var parts ='01/07/2016'.val().split('/');
var d1 = Number(parts[2] + parts[1] + parts[0]);
parts ='20/06/2016'.val().split('/');
var d2 = Number(parts[2] + parts[1] + parts[0]);
return d1 > d2