Ve si te sirve esta funcion, recibe un array como con los parametros a procesar y retorna un array con las fechas sin sábados ni domingos, tambien puedes pasarle un array como tercer paranmetro con los dias feriados a excluir del periodo
Código PHP:
Ver original/**
* Retorna un array con los dias habiles en un rango dado
* recibe un arra con la data a procesar
* array('fecha1','fecha2',array feriados)
* Data ['fecha iniciio','fecha fin',[array de feriados si los hay]]
*/
function diashabiles($X){
$timezone = $this->city($this->IPreal())->timezone;
$inicio = new \DateTime($X[0]);//Inicio
$final = new \DateTime($X[1]);//Fin
// Meter fecha final en la operación.
$final->modify('+1 day');
$intervalo = $final->diff($inicio);
//Días totales
$dias = $intervalo->days;
// Creamos un perido para que imprima los días (P1D es igual a 1 dia)
$periodo = new \DatePeriod($inicio, new \DateInterval('P1D'), $final);
//Array con días de fiesta
$holidays = $X[2];//Array con días de fiesta
foreach($periodo as $d) {
$pos = $d->format('D');
if ($pos == 'Sat' || $pos == 'Sun') {
$dias--;
}
elseif (in_array($d->format('Y-m-d'), $holidays)) { $dias--;
}
}
return $dias;
}//