Мне нужна эта функция в проекте, над которым я сейчас работаю. Это школьный проект, в котором я должен выделить фон красным цветом, если этот день является праздничным событием + выходные. Обратите внимание, что здесь все субботы не являются выходными. В некоторых школах выходные дни проводятся только во 2-ю субботу, а в некоторых школах в качестве рабочего дня будут выбраны случайные субботы.
Каким-то образом я преодолел эту проблему, хотя это не изящное решение.
В версии 1.5.1 под номером строки 2291 добавить эту строку
var refDate = typeof(window.holidays)!='undefined'?window.holidays:[]; //Quick and dirty fix
С 2300 по 2304 заменить строки следующим кодом
if (+date == +today) {
cell.addClass(tm + '-state-highlight fc-today');
}else if($.inArray(+date, refDate)!=-1){ //Added by me
cell.addClass(tm + '-state-error'); //Added by me
}else{
cell.removeClass(tm + '-state-highlight fc-today');
cell.removeClass(tm + '-state-error'); //Added by me
}
Перед вызовом полного календаря, вам нужно создать массив дат, преобразованных в объекты даты js, а затем преобразовать в длинное целое число, добавив перед ним символ +, например
var holidayArray = ['2011-06-26','2011-07-03','2011-07-10','2011-07-17','2011-07-24','2011-07-31'];
window.holidays = [];
for(var i=0; i<holidayArray.length;i++){
holidays.push(+(mysqlDateToJSDate(holidayArray[i])));
}
Наконец я нашел функцию js, которая преобразует даты mysql в объекты даты js.
function mysqlDateToJSDate(date) {
var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])$/;
var parts=date.replace(regex,"$1 $2 $3").split(' ');
return new Date(parts[0],parts[1]-1,parts[2],0,0,0);
}
После вызова полного календаря не забудьте удалить глобальную переменную.
Я знаю, что создание глобальной переменной не очень хорошая вещь. Но учитывая, что полный календарь очень активен с частым исправлением ошибок и новыми функциями, я не хочу слишком много вмешиваться в код. Я не знаю, как передать переменную в качестве опции и легко получить ее там, где я хочу.
Это было сделано только при просмотре месяца. Мы должны сделать то же самое и с другими взглядами ...
Невозможно опубликовать предварительный просмотр, но вы можете его увидеть здесь .