jQuery использует функцию _determineDate()
для вычисления объекта даты minDate на основе его атрибута.Я изменил его поведение и сделал функцию.Обратите внимание, что он имеет дело только со значениями типа «смещение» и ничего больше.
/* minDateAttr is the minDate option of the datepicker, eg '+1d +3m' */
function getMinDate(minDateAttr) {
var minDate = new Date();
var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
var matches = pattern.exec(minDateAttr);
while (matches) {
switch (matches[2] || 'd') {
case 'd' : case 'D' :
minDate.setDate(minDate.getDate() + parseInt(matches[1],10));
break;
case 'w' : case 'W' :
minDate.setDate(minDate.getDate() + parseInt(matches[1],10) * 7);
break;
case 'm' : case 'M' :
minDate.setMonth(minDate.getMonth() + parseInt(matches[1],10));
break;
case 'y': case 'Y' :
minDate.setYear(minDate.getFullYear() + parseInt(matches[1],10));
break;
}
matches = pattern.exec(minDateAttr);
}
return minDate;
}
Изначально я планировал ответить на следующее, но придумал (лучшее) решение - приведенное выше.Тем не менее, я собираюсь включить его, на случай, если это необходимо по причинам отладки и т. Д.будущее.Тем не менее, это было бы, как использовать это:
var minDateAttr = $(elem).datepicker("option", "minDate");
var inst = $(elem).data("datepicker");
var minDateObj = $.datepicker._determineDate(inst, minDateAttr, new Date());