Как получить DatePeriod со словом "каждый первый четверг месяца"?

У меня два DateTime-объекты:

$start = new DateTime('first thursday of June 2012');
$end   = new DateTime('2012-12-31');

мне нужно DatePeriod который содержит все первые четверги месяцев между этими двумя датами. Когда используешь

$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, $end);

Это добавляет только 1 месяц без соблюдения условия "первый четверг".

Также что-то подобное не работает:

$interval = DateInterval::createFromDateString('1 month first thursday');
$period = new DatePeriod($start, $interval, $end);

Кто-нибудь знает, как мне этого добиться?

1 ответ

Решение

Я боролся с этим последние два часа - как только я разместил это здесь, я получил решение. Мне нужно было только изменить строку DateInterval на "первый четверг следующего месяца".

$start = new DateTime('first thursday of June 2012');
$end   = new DateTime('2012-12-31');

$interval = DateInterval::createFromDateString('first thursday of next month');
$period = new DatePeriod($start, $interval, $end);

Работает! DateTime качается;-)

Другие вопросы по тегам