Держите лошадей, ребята! :)
Не забывайте, что Date.parse не может корректно работать с разными локалями, он только правильно анализирует определенный формат даты.
Если вы используете различные форматы даты (в зависимости от культуры) - лучше придерживаться обработки даты в jquery datepicker.
Итак, предположим, что вы загрузили корректный объект datequicker jquery для конкретной культуры (например, jquery.ui.datepicker-nb-NO.js, где формат даты - DD.MM.yyyy и не анализируется Date.parse ) и инициализировал его, правильный подход:
$.validator.addMethod('dateRange', function (value, element, parameterValue) {
if (this.optional(element) && !value) {
return true;
}
var dateFormat = $(element).datepicker('option', 'dateFormat');
try {
var startDate = $.datepicker.parseDate(dateFormat, parameterValue[0]).getTime();
var endDate = $.datepicker.parseDate(dateFormat, parameterValue[1]).getTime();
var enteredDate = $.datepicker.parseDate(dateFormat, value).getTime();
return (startDate <= enteredDate) && (enteredDate <= endDate);
} catch (error) {
return true;
}
});
Я поместил материал parseDate в блок try, потому что нет нормального способа выяснить, правильно ли была проанализирована дата.