我正在处理使用RRULE处理重复的 icalendar 事件;
现在,我知道有一些 php 类,如When和RRules等来处理 RRULE 并且我已经在使用它来完成生成重复事件的任务,但问题在于长日期范围的性能.
所以我想通过限制当前日历视图的范围(开始和结束)来加快生成重复的任务[ MONTH, WEEK, DAY ]
。
假设我们有一个重复的事件,比如
FREQ=DAILY;INTERVAL=1;DTSTART:2009-01-01
我所做的显然是更改DTSTART
到今天的日期并添加一个UNTIL
日期以将循环限制在一个近距离范围内,它工作得很好。问题来自以下规则:
FREQ=WEEKLY;BYDAY=SU;DTSTART:2009-01-01
或者
FREQ=WEEKLY;INTERVAL=5;DTSTART:2009-01-01
使用这种规则,我的技巧不起作用,因为原始开始日期与我今天的硬编码日期不匹配。
我曾尝试使用 DateTime Period 和 Interval 进行一些迭代,但我无法弄清楚。
所以我要问的是一种方法来查找给定日期何时会在我的视图范围内重复出现,可以是 MONTH、WEEK 或单日。
在此先感谢希望有人可以帮助我。;)