我编写了一些用于输入重复事件的代码。最棘手的部分是用户可以创建一个事件并让它在每周选定的日子重复 x 周。
例如,用户可以选择 Mon,Wed,Fri 并让它每 3 周重复一次。
如果每周都很容易做到 -我可以做这样的事情:
$start = new DateTime( '2013-10-01' );
$end = new DateTime( '2014-01-01 23:59:59' );
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $date) {
$dayOfWeek = $date->format('l');
if ($dayOfWeek == 'Monday' || $dayOfWeek == 'Wednesday' || $dayOfWeek == 'Wednesday') {
// do something
}
}
对于上述代码,我将如何修改它以每 3 周包含一次周一/周三/周五?有没有更好的方法来实现这一点而无需每天循环?
我想我可以使用 $date->format('w'); 这会给我一年中的数字星期。然后我可以有一个计数器并重置它。