我正在使用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中生成一个单独的事件对象,以便每次需要的事件重复。>