Я использую jQuery datepicker с пользовательским набором диапазонов дат, собранных из базы данных MySQL. Результирующий код из запроса выглядит так:
//<![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 февраля, это позволит вам выбрать до 1 марта. Я пытался обойти это путем вычитания 1 месяца из даты, но, конечно, это не работает, так как месяцы имеют разное количество дней, поэтому, если бы у меня было 31 марта, я не мог бы просто минус 1 месяц как 31-е. Февраль не существует.
Есть идеи, что не так с кодом? Я уверен, что это код JQuery выше!
Вы можете увидеть пример на http://bookingtest.walesdesign.com