Во-первых, формат 'dd-MMM-yyyy' не является допустимым входным форматом конструктора Date
(он возвращает объект "недопустимая дата"), поэтому нам нужно проанализировать это самостоятельно. Давайте напишем функцию для возврата объекта Date
из строки в этом формате.
function parseMyDate(s) {
var m = ['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'];
var match = s.match(/(\d+)-([^.]+)-(\d+)/);
var date = match[1];
var monthText = match[2];
var year = match[3];
var month = m.indexOf(monthText.toLowerCase());
return new Date(year, month, date);
}
Date
объекты неявным образом приводят к числу (число миллисекунд с 1970 года; время эпохи), поэтому вы можете сравнивать их с помощью обычных операторов сравнения:
if (parseMyDate(date1) > parseMyDate(date2)) ...