【发布时间】:2013-10-26 09:44:09
【问题描述】:
我编写了一些用于输入重复事件的代码。最棘手的部分是用户可以创建一个事件并让它在每 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');这会给我一年中的数字星期。然后我可以有一个计数器并重置它。
【问题讨论】:
标签: php datetime dateinterval recurring-events