jupitern / scheduler
PHP事件调度
1.3.1
2016-12-16 12:08 UTC
Requires
- php: >=5.4
README
jupitern/scheduler
PHP调度器。
添加一次性事件日期或重复事件日期,从给定日期获取下一个事件日期或下一个X事件日期
要求
PHP 5.4或更高版本。
安装
将jupitern/scheduler包含到您的项目中,通过将其添加到您的composer.json文件中。
{ "require": { "jupitern/scheduler": "1.*" } }
用法
// instance Scheduler $schedules = \Jupitern\Scheduler\Scheduler::instance() // limit events from 08.00 am to 17.00 ->setTimeFrame('08:00', '17:00') // add a one time event date // accepts any string compatible with php DateTime object ->add('2020-01-01 12:35') // add another one time event date // accepts any string compatible with php DateTime object ->add('2020-01-01 17:50') // add a recurring date // accepts any string compatible with php DateTime object ->addRecurring('+ 8 hours') // get next schedule starting at 2020-01-01 ->getNextSchedule('2020-01-01 00:00:00', 10); // get next 5 schedules starting at 2020-01-01 ->getNextSchedules('2020-01-01 00:00:00', 10); // display schedules foreach ($schedules as $schedule) { echo $schedule->format('Y-m-d H:i')."<br/>"; }
示例
$schedules = \Jupitern\Scheduler\Scheduler::instance() ->add('2030-01-01 12:35') ->add('2030-01-01 14:50') ->addRecurring('+2 hours') ->getNextSchedules('2030-01-01 00:00:00', 10); foreach ($schedules as $schedule) { echo $schedule->format('Y-m-d H:i').'<br/>'; } /* output: 2030-01-01 00:00 2030-01-01 02:00 2030-01-01 04:00 2030-01-01 06:00 2030-01-01 08:00 2030-01-01 10:00 2030-01-01 12:00 2030-01-01 12:35 2030-01-01 14:00 2030-01-01 14:50 */ $schedules = \Jupitern\Scheduler\Scheduler::instance() ->setTimeFrame('08:00', '17:00') ->add('2030-01-01 12:35') ->add('2030-01-01 14:50') ->addRecurring('+2 hours') ->getNextSchedules('2030-01-01 00:00:00', 10); foreach ($schedules as $schedule) { echo $schedule->format('Y-m-d H:i').'<br/>'; } /* output: 2030-01-01 08:00 2030-01-01 10:00 2030-01-01 12:00 2030-01-01 12:35 2030-01-01 14:00 2030-01-01 14:50 2030-01-01 16:00 2030-01-02 08:00 2030-01-02 10:00 2030-01-02 12:00 */ $schedules = \Jupitern\Scheduler\Scheduler::instance() ->setTimeFrame('08:30', '19:00') ->add('+10 minutes') ->add('+30 minutes') // outside time frame. will not produce any schedule ->add('next day 08:30') ->getNextSchedules('2000-12-16 18:40'); foreach ($schedules as $schedule) { echo $schedule->format('Y-m-d H:i')."<br/>"; } /* output: 2000-12-16 18:50 2000-12-17 08:30 */
变更日志
v1.3
- 修改方法add,以允许相对一次性事件,如"+1小时"或"下一天17:00"。
- 使用方法add添加的相对事件相对于$fromStartDate,并遵守如果设置的时间范围。
贡献
- 欢迎讨论错误、功能和想法。
许可
jupitern/scheduler是在MIT许可下发布的。
您有权使用、修改和分发此软件