在jQuery FullCalendar中显示2周

时间:2011-06-21 04:00:30

标签: jquery fullcalendar

一直在寻找一种方法,只显示FullCalendar的月视图中的当前周和下周。到目前为止,看起来它被建议作为即将推出的版本的功能,但与此同时,有没有人能够入侵它?

更新

感谢世界末日的建议,我能够创建一个显示2周的自定义视图,从本周开始。您将可见的开始日期更改为今天的日期,并将行数更改为2.

function TwoWeeksView(element, calendar) {
var t = this;

// exports
t.render = render;


// imports
BasicView.call(t, element, calendar, 'month');
var opt = t.opt;
var renderBasic = t.renderBasic;
var formatDate = calendar.formatDate;



function render(date, delta) {
    if (delta) {
        addMonths(date, delta);
        date.setDate(1);
    }
    var start = cloneDate(date, true);
    start.setDate(1);
    var end = addMonths(cloneDate(start), 1);

    //var visStart = cloneDate(start);
    var visStart = date;

    var visEnd = cloneDate(end);
    var firstDay = opt('firstDay');
    var nwe = opt('weekends') ? 0 : 1;
    if (nwe) {
        skipWeekend(visStart);
        skipWeekend(visEnd, -1, true);
    }

    addDays(visStart, -((visStart.getDay() - Math.max(firstDay, nwe) + 7) % 7));
    addDays(visEnd, (7 - visEnd.getDay() + Math.max(firstDay, nwe)) % 7);
    var rowCnt = Math.round((visEnd - visStart) / (DAY_MS * 7));

    if (opt('weekMode') == 'fixed') {
        addDays(visEnd, (6 - rowCnt) * 7);
        //rowCnt = 6;
        rowCnt = 2;
    }
    t.title = formatDate(start, opt('titleFormat'));
    t.start = start;
    t.end = end;
    t.visStart = visStart;
    t.visEnd = visEnd;
    renderBasic(6, rowCnt, nwe ? 5 : 7, true);
}
}

5 个答案:

答案 0 :(得分:8)

最佳解决方案是实现自定义视图。

在新的JS中添加您自己定义的视图:

$.fullCalendar.views.twoweeks = TwoWeeksView;
function TwoWeeksView(element, calendar) {
    // copy code from fullcalendar.js line 1960
}

答案 1 :(得分:7)

fullCalendar 2的正确答案是修改basicWeek视图,如文档中所述:

    $('#calendar').fullCalendar({
        views: {
            basicWeek: {
                type: 'basic',
                duration: {weeks: 2},
                rows: 2
            }
        }
    }

有。简单:)

答案 2 :(得分:2)

请参阅此处以获取有关此fullcalendar自定义视图的更多信息

Jquery FullCalendar 2 week view Next prev buttons

答案 3 :(得分:1)

答案是显示两个日历,一个是本周,另一个是一周。

我建议你破解我在这个小提琴上所做的事情:http://jsfiddle.net/Doomsday/M3YP3/1/

答案 4 :(得分:0)

最新版本现在让它更容易(v2.2.6)

你还可以查看这个git,其中有一个自定义的twoweek视图,它使用next / prev按钮一次移动1周(或者它设置的任何选项)。

https://github.com/marc-gist/fullcalendar

编辑:要点似乎不再适用于其他版本的fullcalendar;但请查看文档,以便通过选项值进行简单的周视图设置。