【发布时间】:2010-12-17 16:58:10
【问题描述】:
我正在寻找一个 PHP 库(或者更好的 ruby 库)来处理事件日历。我看了几十个,当涉及到重复性事件时,每个都崩溃了。许多要求和结束日期,并且大多数将每个重复事件创建为数据库或其他内容中的条目。
我得到的每一个建议都是使用 Google 日历,它确实可以满足我的需求,但我确信他们不会让我在该服务之上构建服务。
【问题讨论】:
标签: ruby events calendar recurring
我正在寻找一个 PHP 库(或者更好的 ruby 库)来处理事件日历。我看了几十个,当涉及到重复性事件时,每个都崩溃了。许多要求和结束日期,并且大多数将每个重复事件创建为数据库或其他内容中的条目。
我得到的每一个建议都是使用 Google 日历,它确实可以满足我的需求,但我确信他们不会让我在该服务之上构建服务。
【问题讨论】:
标签: ruby events calendar recurring
关于周期性事件的一件好事是,我们的日历每 28 年循环一次。 即今天是 2010 年 12 月 3 日星期四,所以我知道 28 年后(10226 天)我们将是 2038 年 12 月 3 日星期四。 有了这些知识,您可以在有限的时间段内构建一个发生表,然后将其“移动”到您的目标时间范围...
【讨论】:
RiCal 的重复规则适用于此。他们会做数学计算,具体实施取决于您。
require 'rubygems'
require 'ri_cal'
rule = RiCal::PropertyValue::RecurrenceRule::RecurringMonthDay.new(15)
p rule.include?(Date.new(2025, 7, 15)) # true
【讨论】:
我自己没有使用过Runt,但看起来它可以满足你的需求。
根据他们的主页:
Runt 是 Martin Fowler 用超棒的 Ruby 语言实现的选择时间模式。 Runt 提供:
【讨论】:
听起来您可能不想自己动手,但是设置一个 cron 作业以每 x 分钟检查一次是否有任何必须发送的事件呢?
【讨论】: