Как установить minDate/maxDate для jQueryUI Datepicker с помощью строки?
jQueryUI Datepicker документация утверждает, что параметр minDate может быть установлен с использованием "строки в текущем dateFormat". Поэтому я инициализировал datepickers следующее:
$("input.date").datepicker({ minDate: "01/01/2010", maxDate: "12/31/2010" });
Однако, это приводит к тому, что мой датпикер имеет диапазон выбора, который изменяется с 11/06/2015 по 12/17/2015.
Я проверил текущий формат даты и его mm/dd/yy
, который должен означать 2 цифры для месяца, 2 для дня и 4 для года, разделенных косой чертой. Я также попытался включить dateFormat: "mm/dd/yy"
в инструкцию инициализации.
Я также проверил значения для minDate и maxDate после этого, и они установлены на значения, которые я хочу: 01/01/2010
и 12/31/2010
.
Я хочу иметь возможность установить min/maxDate со строками, потому что мне передают эти значения в виде строк из другого места. Может быть, кто-то знает, почему это происходит и как решить это, или обходным путем для достижения этого, perphaps, изменяющие формат строк даты или что-то еще?
Спасибо
EDIT:
Использование: jQuery v1.3.2 и jQuery UI v1.7.2
Ответы
Ответ 1
В конце концов мне пришлось использовать что-то вроде этого, так как датапикер v1.7 не имеет проблем с датами:
$.getJSON("/GetMinMaxDates/", function(dates) {
var DateLimits = {min:null, max:null};
DateLimits.min = new Date(Date.parse(dates.min));
DateLimits.max = new Date(Date.parse(dates.max));
$("input.date").datepicker({ dateFormat: "mm/dd/yy", minDate: DateLimits.min, maxDate: DateLimits.max });
});
Ответ 2
Появляется "ошибка" в 1.3.2 с 1.7.2. В 1.4.2 с 1.8.1 все в порядке.
Ответ 3
Я нашел, что ваш последний метод лучше всего подходит для IE7/8. IE возвращает NaN в строковых функциях Date; как только я разобрался с числами, проблема исчезла.