trzymać konie, chłopaki! :)
Nie zapominaj, że funkcja Date.parse nie może działać poprawnie z różnymi ustawieniami regionalnymi, analizuje tylko poprawnie określony format daty.
Jeśli używasz różnych formatów daty (specyficznych dla kultury) - lepiej trzymać się daty obsługi datepicker jquery.
Załóżmy więc, że załadowałeś właściwy obiekt datakksu jQuera specyficzny dla kultury (na przykład jquery.ui.datepicker-nb-NO.js, gdzie format daty to DD.MM.rrrr i nie jest przetwarzany przez Date. analizować) i zainicjowana go, jest właściwe podejście:
$.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;
}
});
Włożyłam parseDate rzeczy wewnątrz bloku try, bo nie ma normalny sposób, aby dowiedzieć się, jeżeli data została prawidłowo przetwarzane.