如何通过对象选项在完整日历中使用 EXDATE
How to use EXDATE in Full Calendar via object option
正在看这个, it is shown how to include EXDATE in the string format option in FullCalendar。
但是 FullCalendar provides a convenient alternative to the long string. They allow you to use an object instead. Unfortunately their documentation 并没有真正涵盖除此之外的任何内容:
The rrule property accepts whatever the rrule lib accepts for a new
RRule. See the docs. You can specify a string or an object.
我们使用的事件已经很繁重了,我希望避免增加额外的复杂性,因为这会涉及我编写某种映射器来生成此字符串。
我想知道如何使用对象格式从重复规则中排除日期列表。
我试过提供特定日期的日期对象。我试过提供一个 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();
...
这会呈现重复日期(时间有点偏差),但我试图排除的日期仍然会呈现。
为了使您的排除规则与生成的事件相匹配,您还必须包括具体时间。我希望这是因为如果您的事件在一天中重复多次,它就不知道您要排除哪一个。
(如果您的活动是 "all-day" 风格的活动,没有具体的开始时间,那么只在 exdate 中设置日期就可以了。)
因此,改变
rruleSet.exdate(new Date(Date.UTC(2019, 10, 22)));
到
rruleSet.exdate(new Date(Date.UTC(2019, 10, 22, 10, 30)));
会解决你的问题
正在看这个
但是 FullCalendar provides a convenient alternative to the long string. They allow you to use an object instead. Unfortunately their documentation 并没有真正涵盖除此之外的任何内容:
The rrule property accepts whatever the rrule lib accepts for a new RRule. See the docs. You can specify a string or an object.
我们使用的事件已经很繁重了,我希望避免增加额外的复杂性,因为这会涉及我编写某种映射器来生成此字符串。
我想知道如何使用对象格式从重复规则中排除日期列表。
我试过提供特定日期的日期对象。我试过提供一个 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();
...
这会呈现重复日期(时间有点偏差),但我试图排除的日期仍然会呈现。
为了使您的排除规则与生成的事件相匹配,您还必须包括具体时间。我希望这是因为如果您的事件在一天中重复多次,它就不知道您要排除哪一个。
(如果您的活动是 "all-day" 风格的活动,没有具体的开始时间,那么只在 exdate 中设置日期就可以了。)
因此,改变
rruleSet.exdate(new Date(Date.UTC(2019, 10, 22)));
到
rruleSet.exdate(new Date(Date.UTC(2019, 10, 22, 10, 30)));
会解决你的问题