使用DatePeriod和DateInterval在一段时间内获取某些工作日

geb*_*eer 2 php datetime dateinterval

我需要在一段时间内获得某些工作日.平日可以只有一个或多个,例如仅在所有星期一或所有星期一,星期二和星期三.

我想将DatePeriodDateInterval :: createFromDateString一起使用

DateInterval :: createFromDateString接受相对格式.

如何将一个或多个工作日作为相对格式传递到DateInterval :: createFromDateString.这有可能吗?

在相对格式中,我找不到可以做到的"每个"格式

$i = DateInterval::createFromDateString('every Monday');
Run Code Online (Sandbox Code Playgroud)

geb*_*eer 7

感谢所有的评论和答案,我现在知道我无法将"每个星期一"的相对格式传递给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
    }
}
Run Code Online (Sandbox Code Playgroud)