jmbtechnologylimited/rruleunravel

解析 ICAL RRULE。仍在开发中。

v0.4.0 2016-01-01 18:55 UTC

This package is auto-updated.

Last update: 2024-09-17 09:23:30 UTC


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/