PHP:将特定日期与重复出现的iCal规则相匹配

时间:2011-10-09 14:47:02

标签: php calendar icalendar

我需要构建一个简单的日历来嵌入我的PHP应用程序。

基本上我有一堆经常性事件,其iCal重复规则(rrule)是已知的(例如:“FREQ = MONTHLY; INTERVAL = 2; BYDAY = SU”或“FREQ = WEEKLY; BYDAY = SU”)。

基本上我需要一个给出的功能 _事件iCal rrule
_某一天(例如04/10/2011)
返回一个布尔值,告诉我该事件是否在该日期开启。

显然我可以自己构建它但需要很长时间:是否有可用的可靠库?

谢谢,

1 个答案:

答案 0 :(得分:2)

虽然我在自己的日历项目结束时并且我没有使用iCal,但这可能会有所帮助。

我自己的经验是我找不到任何类型的库,我从头开始编写自己的后端。

对于前端,我会敦促你使用FullCalendar,这是一个令人惊叹的日历,你可以用它做什么。你需要的只是集中在后端。

对于db,我会选择每个事件只有一个数据库行的路径,并且当该事件被修改时,如果它重复出现,那么你修改现有事件并创建一个带有更改的新事件。

对于后端逻辑,结合fullcalendar,它为您提供了一个可以使用的窗口。在这个窗口中,我会在事件发生时计算,然后显示,如果事件重复出现,那么当它应该显示在日历上时。它可能会有点复杂,但你可以做到。

我附上了我所做的照片,遗憾的是这个项目不是开源的。

Add New Recurring Event

Calendar with Recurring Events

Amend Recurring Event

Agenda List View

干杯