krōnos / rrule
该包已被废弃且不再维护。未建议替代包。
一个简单的面向对象rrule解析器
v3.2.0
2023-11-02 19:40 UTC
Requires
- php: ^8.1
Requires (Dev)
- cyclonedx/cyclonedx-php-composer: 4.2.1
- dealerdirect/phpcodesniffer-composer-installer: 1.0.0
- kronostechnologies/php-coding-standard: 2.0.0
- phpunit/phpunit: 10.4.2
- squizlabs/php_codesniffer: 3.7.2
- vimeo/psalm: 5.15.0
This package is auto-updated.
Last update: 2024-03-12 06:36:14 UTC
README
面向对象的类,用于解析rrule和exdate。
安装
composer require kronos\rrule
测试
composer install
./vendor/phpunit/phpunit/phpunit
RRule 使用
生成原始RRule
$rrule = new \Kronos\RRule();
$rrule->setByDay(array(\Kronos\RRule\Enums\Days::FRIDAY));
$rrule->setByHour(array('1'));
$rrule->setByMinute(array('1'));
$rrule->setByMonth(array('1'));
$rrule->setByMonthDay(array('1'));
$rrule->setBySecond(array('1'));
$rrule->setBySetPos(array('1'));
$rrule->setByWeekNo(array('1'));
$rrule->setByYearDay(array('1'));
$rrule->setCount(1);
$rrule->setFrequency(\Kronos\RRule\Enums\Frequencies::DAILY);
$rrule->setInterval(1);
$rrule->setUntil(new \DateTime('1980-08-08'));
$rrule->setWkst(\Kronos\RRule\Enums\Days::MONDAY);
echo $rrule->generateRawRRule();
解析原始RRule
$raw_rrule = 'RRULE:BYMONTHDAY=20,21';
$rrule = \Kronos\RRule::fromRawRRule($raw_rrule);
ExDate 使用
生成原始ExDate
$timezone = new \DateTimeZone('UTC');
$exdate->setExceptionDates([
new \DateTime('2000-01-01 00:00:00', $timezone),
new \DateTime('2000-02-01 01:00:00', $timezone),
]);
echo $exdate->generateRawExDate();
解析原始ExDate
$exdate = \Kronos\Exdate::fromRawExDate('EXDATE:20000101T000000Z,20000201T000000Z');