Мне нужно получить определенные будни в течение определенного периода времени.
В будние дни может быть только одна или более, например, только все понедельники или все понедельники, вторники и среды.
Я хотел бы использовать DatePeriod вместе с DateInterval :: createFromDateString
DateInterval :: createFromDateString принимает Относительные форматы.
Как я могу передать один или несколько дней недели в виде относительных форматов в DateInterval :: createFromDateString. Это вообще возможно?
В относительных форматах я не могу найти формат «каждый», который позволил бы сделать
$i = DateInterval::createFromDateString('every Monday');
Благодаря всем комментариям и ответам теперь я знаю, что не могу передать относительный формат, такой как «каждый понедельник», в DateInterval :: createFromDateString.
Но что-то вроде этого работает для моего сценария:
$start = new DateTime('2014-11-01');
$end = new DateTime('2014-12-01');
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, $end);
$mydays = array('1', '3', '5');
foreach($period as $date) {
if(in_array($date->format('N'), $mydays)) {
//do something for Monday, Wednesday and Friday
}
}
Других решений пока нет …