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


Use DatePeriod and DateInterval to get certain weekdays within a period of time

我需要在一段时间内获得某些工作日。工作日只能是一个或多个,例如,只能是所有周一或所有周一、周二和周三。

我想将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
    }
}