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

Как сравнить две строковые даты в javascript?

У меня две строковые даты в формате 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 для этого?

4b9b3361

Ответ 1

var d1 = Date.parse("2012-11-01");
var d2 = Date.parse("2012-11-04");
if (d1 < d2) {
    alert ("Error!");
}

Демо Jsfiddle

Ответ 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