我正在寻找一个PHP库(或更好的红宝石)来处理事件日历 . 我看过几十个,当涉及到反复发生的事件时,每个人都会崩溃 . 许多需要和结束日期,并且大多数创建每个重复事件作为数据库中的条目或其他东西 .
我得到的每一个建议都是使用谷歌日历,它完全符合我的要求,但我相信他们不会让我在服务之上 Build 服务 .
听起来你可能不想自己动手,但是如果有任何必须发送的事件,只需设置一个cron作业来检查每x分钟?
我自己没有使用Runt,但看起来它可能会做你想要的 .
根据他们的主页:
Runt是Martin Fowler用超级奇妙的Ruby语言实现的精选时态模式 . Runt提供:
使用简单的类似表达式定义重复事件的能力
基于接口的API,用于为任意事件/对象创建计划使用时间点的
精确日期类型
日期范围
永恒的和平与/或永生
RiCal的重复规则对此有用 . 他们做数学,实现将取决于你 .
require 'rubygems' require 'ri_cal' rule = RiCal::PropertyValue::RecurrenceRule::RecurringMonthDay.new(15) p rule.include?(Date.new(2025, 7, 15)) # true
关于重复发生事件的一件好事是我们的历法周期每28年一次 . 即今天是2010年12月3日星期四,所以我知道在28年(10226天),我们将于2038年12月3日星期四 . 凭借这些知识,您可以在有限的时间内 Build 一个发生器表,并将其“移动”到你的目标时间范围......
4 回答
听起来你可能不想自己动手,但是如果有任何必须发送的事件,只需设置一个cron作业来检查每x分钟?
我自己没有使用Runt,但看起来它可能会做你想要的 .
根据他们的主页:
Runt是Martin Fowler用超级奇妙的Ruby语言实现的精选时态模式 . Runt提供:
使用简单的类似表达式定义重复事件的能力
基于接口的API,用于为任意事件/对象创建计划
使用时间点的
精确日期类型
日期范围
永恒的和平与/或永生
RiCal的重复规则对此有用 . 他们做数学,实现将取决于你 .
关于重复发生事件的一件好事是我们的历法周期每28年一次 . 即今天是2010年12月3日星期四,所以我知道在28年(10226天),我们将于2038年12月3日星期四 . 凭借这些知识,您可以在有限的时间内 Build 一个发生器表,并将其“移动”到你的目标时间范围......