着眼answer,它显示了如何在FullCalendar的字符串格式选项中包括EXDATE。
但是FullCalendar为长字符串提供了一种方便的替代方法。它们允许您改为使用对象。不幸的是,他们的documentation并没有涵盖其他内容:
rrule属性接受rrule lib接受的新内容 规则。参见文档。您可以指定字符串或对象。
我们使用的事件已经很繁重了,我希望避免增加额外的复杂性,而这会涉及我编写某种映射器来生成此字符串。
我想知道如何使用对象格式从重复规则中排除日期列表。
我尝试提供特定日期的日期对象。我尝试提供一个ISO字符串。我尝试过将它们包含在数组中。
这是我正在尝试的最新迭代:
...
const rruleSet = new RRuleSet();
rruleSet.rrule(new RRule(options));
// Repeat every day except on Nov 22, 2019
rruleSet.exdate(new Date(Date.UTC(2019, 10, 22)));
event.duration = {
seconds: event.event_length,
};
event.rrule = rruleSet.toString();
...
这将呈现重复的日期(时间略有减少),但是我尝试排除的日期仍然呈现。
答案 0 :(得分:1)
为了使排除规则与生成的事件匹配,还必须包括特定时间。我希望这是因为,如果您一天中发生多次重复的事件,则不会知道您要排除哪个事件。
(如果您的事件是“全天”样式的事件,没有特定的开始时间,那么只需将日期设置为exdate就可以了。)
因此,更改
rruleSet.exdate(new Date(Date.UTC(2019, 10, 22)));
到
rruleSet.exdate(new Date(Date.UTC(2019, 10, 22, 10, 30)));
将解决您的问题