我在我的项目中使用PHP RRule重复发生。 这里每日和每周复发工作正常。 我不知道如何在我的场景中使用每月重复发生。
每月情景:
每2个月的第一个星期天
代码:
$dow=array("SU");
$rrule = new RRule([
'FREQ' => 'MONTHLY',
'BYMONTHDAY' => 2,
'INTERVAL' => 2,
'BYDAY' => $dow,
'DTSTART' => '2016-12-01',
'UNTIL' => '2017-12-31'
]);
foreach ( $rrule as $occurrence ) {
echo "</br>";
echo $occurrence->format('D Y-m-d');
}
echo $rrule->humanReadable(),"\n";
//OUTPUT
Sun 2017-04-02
every 2 months on Sunday on the 2nd of the month, starting from 12/1/16, until 12/31/17
答案 0 :(得分:1)
您不需要BYMONTHDAY
,您需要带有数字前缀的BYDAY
。
在您的情况下:'BYDAY' => '1SU'
表示“第一个星期天”。 2SU
第二个星期天,-1SU
上周日等。
更多信息: