我有一个网络调度应用程序,我目前正在重写,并有一些关于如何使用定期约会的问题(我知道,当涉及到重复的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 */