我有一个网络调度应用程序,我目前正在重写,并有一些关于如何使用定期约会的问题(我知道,当涉及到重复的appts时,不缺少“什么是最好的方法”).
所以我想提供定期约会,其中用户可以安排约会,如6月2日星期六,并且它应该在星期六每隔一周重复一段预定的时间段(例如1年).
就个人而言,我希望使用
DateTime对象并使用
DateInterval类.
在上面的例子中,你需要计算出第一个/下一个星期六的日期,然后才能使用P2W日期间隔
基本的例子
- $dow = 'saturday';
- $step = 2;
- $unit = 'W';
- $start = new DateTime('2012-06-02');
- $end = clone $start;
- $start->modify($dow); // Move to first occurence
- $end->add(new DateInterval('P1Y')); // Move to 1 year from start
- $interval = new DateInterval("P{$step}{$unit}");
- $period = new DatePeriod($start,$interval,$end);
- foreach ($period as $date) {
- echo $date->format('D,d M Y'),PHP_EOL;
- }
- /*
- Sat,02 Jun 2012
- Sat,16 Jun 2012
- Sat,30 Jun 2012
- Sat,14 Jul 2012
- …
- Sat,20 Apr 2013
- Sat,04 May 2013
- Sat,18 May 2013
- Sat,01 Jun 2013
- */