Я использую PHP RRule для повторения в моем проекте.
Здесь Daily и Weekly Recurrence работают нормально.
Я не знаю, как использовать ежемесячные повторения в моем сценарии.
Ежемесячный сценарий:
Первое воскресенье каждые 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
Вам не нужно BYMONTHDAY
, тебе нужно BYDAY
с префиксом номера.
В вашей ситуации: 'BYDAY' => '1SU'
означает «первое воскресенье». 2SU
второе воскресенье, -1SU
последнее воскресенье и т. д.
Дополнительная информация:
Других решений пока нет …