将两个工作日添加到日期数组中,不包括假日日期

cha*_*lie 10 php date

我想在工作日添加2个日期,但我也想排除数组中的日期.

要排除的日期数组:

$bankHolidays = array();
foreach($obj as $e) {
    if($e->division == 'england-and-wales') {
        foreach($e->events as $events) {
            $bankHolidays[] = $events->date;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止增加2个工作日

$ret = date('d-m-Y', strtotime($bill["charge_customer_at"]. ' +2 weekdays'));
Run Code Online (Sandbox Code Playgroud)

如何包含要排除的日期数组?

例如,如果我的日期是,2017-07-19并且我想要添加2周的日期,那将输出2017-07-21.

但是如果2017-07-21在我的数组中,它应该跳过这个日期并继续添加2个工作日,所以输出最终也会2017-07-24因周末而来.

fub*_*bar 11

你可以做一些像使用while循环一样简单的事情.

$date = '2017-07-25';
$reserved = ['2017-07-27', '2017-07-28'];
$days = 2;

while ($days > 0) {
    $date = date('Y-m-d', strtotime($date . ' +1 weekday'));
    if (! in_array($date, $reserved)) $days--;
}

var_dump($date);
Run Code Online (Sandbox Code Playgroud)