我正在使用带有RRule 插件的FullCalendar v4-alpha-3来生成重复事件。它按预期工作,只有一个问题:如何修改重复事件以说明比系列中起始月份天数更少的月份?
例如,如果第一次发生在 2019 年 1 月 29 日;由于只有 28 天(不包括闰年),该事件将在所有后续月份的 29 日重复,2 月除外。
我试过重置dtstart
到下个月的第一天。它可以工作,只是事件不再是递归的。
这是我的设置的精简片段:
let calendar = new Calendar(calendarEl, {
plugins: [ rrulePlugin ],
events: [
{
rrule: 'DTSTART:20190129 RRULE:FREQ=MONTHLY;UNTIL=20200130;COUNT=13;BYMONTHDAY=29'
}
],
eventRender: function(info) {
...
// reset start date to the first day of the following month
// if current month has fewer days than base month
let start = event.start;
let day = start.getDate();
let now = new Date();
let currentMonth = now.getMonth();
let currentYear = now.getFullYear();
let daysInCurrent = getDaysInMonth(currentMonth + 1, currentYear);
let nextStart = start;
if (day > daysInCurrent) {
nextStart = new Date(currentYear, currentMonth + 1, 1);
event.setStart(nextStart);
event.setEnd(null);
}
}
});
我会很感激任何见解。