在完整日历中设置自定义hiddenDays

时间:2014-01-31 11:57:17

标签: jquery fullcalendar

我们可以通过设置 hiddenDays 属性隐藏来自fullcalendar的特定日期。

我需要隐藏一个月的其他星期六。

有可能吗?

1 个答案:

答案 0 :(得分:8)

您可以使用dayRender回调函数:

  

此回调可让您修改属于月份的日期单元格,   basicWeek和basicDay视图。查看可用视图。

     

date是给定日期的本机Date对象。

检查显示的是否是一个奇怪的星期六;这样做你可以得到日期的周数,并检查它是否奇怪。

代码:

Date.prototype.getWeekOfMonth = function(exact) {
    var month = this.getMonth()
        , year = this.getFullYear()
        , firstWeekday = new Date(year, month, 1).getDay()
        , lastDateOfMonth = new Date(year, month + 1, 0).getDate()
        , offsetDate = this.getDate() + firstWeekday - 1
        , index = 1 // start index at 0 or 1, your choice
        , weeksInMonth = index + Math.ceil((lastDateOfMonth + firstWeekday - 7) / 7)
        , week = index + Math.floor(offsetDate / 7)
    ;
    if (exact || week < 2 + index) return week;
    return week === weeksInMonth ? index + 5 : week;
};

function isOdd(num) { return num % 2;}

$('#mycalendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    events: [{
        title: 'event1',
        start: '2014-01-07'
    }, {
        title: 'event2',
        start: '2014-01-10',
        end: '2013-05-15'
    }, {
        title: 'event3',
        start: '2014-01-13 12:30:00',
        allDay: false // will make the time show
    }],
    dayRender: function (date, cell) {
        if (date.getDay() == 6 && isOdd(date.getWeekOfMonth())) {
            $(cell).addClass('fc-disabled');
        }
    }
});

演示:http://jsfiddle.net/IrvinDominin/cjTF9/