【发布时间】:2016-05-08 14:31:16
【问题描述】:
我正在处理使用 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 或单个 DAY。
提前感谢希望有人可以帮助我。 ;)
【问题讨论】:
-
你今天的硬编码日期格式是什么?
-
@Ivan Barayev:它是 TZ Europe/Rome,格式是 (Y-m-d H:i:s) 但可以是任何东西.. 我猜
标签: php datetime date-range repeat rrule