У меня есть дата начала и дата окончания.
Я пытаюсь получить все вторники и среды каждые две недели.
Пример:
2017-05-23 (tu)
2017-05-24 (we)2017-06-06 (tu)
2017-06-07 (we)
...
Что я пытаюсь сделать в PHP:
$start = new FrozenTime('2017-05-23'); // Date is in this format 'cause I'll save into DB
$endOfYear = $start->endOfYear();
$perWeek = new \DateInterval('P14D'); // I want every 2 weeks
$periodPerWeek = new \DatePeriod($start, $perWeek, $endOfYear);
$days = ['2', '3']; // Tuesday and Wednesday
foreach ($periodPerWeek as $value) {
if (in_array($value->format('N'), $days)) {
$test[] = [
'start' => $value
];
}
}
Результаты:
"start": "2017-05-23",
"start": "2017-06-06",
"start": "2017-06-20",
Он получает только одну дату в массиве. Мне тоже нужно в среду! Как мне это сделать?
ВАЖНО:
Датой начала не всегда будет вторник. Пользователь может выбрать дни недели, которые он хочет.
Пример: пользователь может выбирать каждый SU, WE и FR каждые две недели.
// start date example: 2017-05-20 (saturday)
// output should be like:
2017-05-22 (SU)
2017-05-24 (WE)
2017-05-26 (FR)
2017-06-05 (SU)
2017-06-07 (WE)
2017-06-09 (FR)
...