Я использую jQuery datepicker с пользовательским набором диапазонов дат, собранных из MySQL db. Полученный код из запроса выглядит так:jQuery datepicker, пользовательский диапазон quirk
//<![CDATA[
$(window).load(function(){
var ranges = [ { start: new Date(2012, 02, 14), end: new Date(2012, 03, 31) } ];
$(function() {
$("#datepicker").datepicker({
numberOfMonths: 1,
dateFormat: 'd MM, yy',
beforeShowDay: function(date) {
for(var i=0; i<ranges.length; i++) {
if(date >= ranges[i].start && date <= ranges[i].end) return [true, ''];
}
return [false, ''];
},
minDate: ranges[0].start,
maxDate: ranges[ranges.length -1].end
});
});
});//]]>
(Это запрашиваемые диапазоны дат).
Моя проблема заключается в следующем:
Когда календарь оказывается, по какой-то причине он решает добавить в месяц на то, что можно выбрать. То есть. если вы установите дату окончания 31 марта, она изменит ее до 1 мая, или если вы установите ее как! st Feb, она позволит вам выбрать до 1 марта. Я попытался обойти это, вычитая 1 месяц со дня, но, конечно, это не работает, так как месяцы имеют разное количество дней, поэтому, если бы у меня был 31 марта, я не мог бы просто минус 1 месяц как 31-й Фев не существует.
Любые идеи, что не так с кодом? Я уверен, что код jQuery выше!
Вы можете увидеть пример на http://bookingtest.walesdesign.com
JavaScript 'date' использует 0 основанные на месяц индексы (что глупо, если вы спросите меня) ... Январь 0, Февраль 1, ... – zzzzBov