FullCalendar重复事件



我正在使用fullcalendar,并希望在8月至11月在一个月(星期一)表格重复一次活动。我已经能够重复活动,但是该活动在一周的每个星期一的一个月内重复四次 - 虽然我需要在开始日期之后的第一个星期一重复一次。低于日期的范围与DOW(每周的天数)paramater一起传递。

 var repeatingEvents = [{
title:"My repeating event",
id: 1,
start: '10:00', 
end: '14:00', 
dow: [ 1, 4 ], 
ranges: [{ //repeating events are only displayed if they are within at least one of the following ranges.
    start: moment().startOf('week'), //next two weeks
    end: moment().endOf('week').add(7,'d'),
},{
    start: moment('2015-02-01','YYYY-MM-DD'), //all of february
    end: moment('2015-02-01','YYYY-MM-DD').endOf('month'),
},/*...other ranges*/],
},/*...other repeating events*/];

有什么方法可以在一个月内重复一次,运行其表格开始日期到结束日期?任何帮助将不胜感激

如果您无法按照@adyson的建议在服务器端生成事件,则可以在JavaScript中进行。这找到了本月的第一个星期一,即指定的开始日期和结束日期。

var id=0, event, events = [],
    start=moment('2017-08-01'),
    end=moment('2017-10-31');
while (start.isBefore(end)) {
    id++;
    if (start.day() === 'Monday') {
        day = start.format('YYYY-MM-DD');
    } else {
        day = start.add(1, 'weeks').startOf('isoWeek').format('YYYY-MM-DD');
    }
    event = {
        title:"My repeating event",
        id: id,
        start: day + ' 10:00:00', 
        end: day + ' 14:00:00', 
    }
    events.push(event);
    start.add(1, 'month').startOf('month');
}

,然后在日历中使用您构造的事件数组:

$('#calendar').fullCalendar({
    events: events,
    // ...

不幸的是,对这种事情没有内置支持。如果您想像显示的那样使用"范围"数组,这是一个完全自定义的属性,因此您需要一些自定义代码来处理它们。看来您使用了与此答案相同的结构:在FullCalendar中重复发生的事件。在这种情况下,您还需要在该答案中显示的" EventRender"回调中的自定义代码,以便应用范围定义。

另一个解决方案仅仅是更改服务器端代码,以便在json中生成一个单独的事件对象,以便每次需要的事件重复。>

相关内容

  • 没有找到相关文章

最新更新