Tenere i vostri cavalli, ragazzi! :)
Non dimenticare che Date.parse non può funzionare correttamente con diverse impostazioni internazionali, ma analizza solo il formato di data specifico.
Se si utilizzano vari formati di data (specifici della lingua), è meglio attenersi alla gestione della data di jquery datepicker.
Quindi, supponendo di aver caricato l'oggetto jquery datepicker specifico della cultura specifico (ad esempio, jquery.ui.datepicker-nb-NO.js, dove il formato della data è GG.MM.aaaa e non viene analizzato per Data. analizzare) e inizializzata esso, l'approccio corretto è:
$.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;
}
});
ho messo parsedate roba dentro blocco try, perché non c'è modo normale per capire se la data è stato analizzato correttamente.