jmbtechnologylimited / rruleunravel
解析 ICAL RRULE。仍在开发中。
v0.4.0
2016-01-01 18:55 UTC
Requires
- php: >=5.3.0
README
接受 iCal/ics RRULE(及相关数据)并返回该规则的全部出现。
版本及状态
由于它尚未处理 iCal/ics RRULE 规范的所有部分,仅处理部分部分,因此被标记为预版本 1。它将不会标记为 v1.0,直到它处理所有常用部分。
使用方法
设置数据
应使用所有必要信息设置 ICalData 对象。这包括时区、开始和结束以及 RRULE。
$icalData = new ICalData(
new \DateTime("2014-11-19 08:00:00", new \DateTimeZone("Europe/London")),
new \DateTime("2014-11-19 08:00:00", new \DateTimeZone("Europe/London")),
"FREQ=MONTHLY;BYMONTHDAY=19",
new \DateTimeZone("Europe/London"));
您还可以在此处传递 EXDATE 行。
$icaldata->addExDateByString("20150226T090000","TZID=Europe/London");
设置工作类
$unraveler = new Unraveler($icalData);
设置选项(可选)
$unraveler->setIncludeOriginalEvent(false);
$unraveler->setResultsCountLimit(1);
ResultFilterAfterDateTime 和 ResultFilterBeforeDateTime 允许您控制返回哪些事件。
$unraveler->addResultFilter(new ResultFilterAfterDateTime(new \DateTime('2016-01-01 00:00:00', new \DateTimeZone("Europe/London"))));
处理并获取结果
$unraveler->process();
$results = $unraveler->getResults();
结果是 UnravelerResult 类型的数组,该类具有获取开始和结束的方法。
- getStart()
- getEnd()
更多信息
有关更多信息,请参阅 http://ican.openacalendar.org/。