trini, te paso un ejemplo completo, una vez que lo hayas probado quita los echo y modifica como quieras.
El default_time_zona deberías dejarlo para evitar warnings.
Fíjate que utilizo time() en vez de mktime() porque así lo recomienda el manual.
A ver si sirve, saludos
Código PHP:
<?php
error_reporting ( E_ALL );
ini_set ( "display_errors", 1 );
date_default_timezone_set ( 'Europe/Madrid' );
/**
* Establecemos unos días permitidos, o sea, los dias laborables
* en este caso, de lunes a viernes, de 1 a 5. Esta combinación se puede cambiar a gusto.
* El programa acepta cualquier combinación respetando el índice Lunes: 1, Domingo: 7
*/
$dias = array(1,2,3,4,5); //Los dias permitidos, en nuestro caso los laborables. Los dias se cuentan de 1 a 7 empezando por el Lunes
$suma = 12; //Los dias que se deben sumar
//Comprobamos los días válidos, es decir, si hoy + 1 dia es sábado, entonces no vale, hay que pasar el dia válido siguiente que es el lunes
$dias_validos = array();
//por cuantos dias quiero sumar, hago una pasada para comprobar si la suma cae en un día válido
for ($i=$suma;$i>0;$i--){
if(!in_array(date("N", time() + (86400 * $i)), $dias)) {echo "<h3>El día ".date("D Y-m-d", time() + (86400 * $i))." no es válido</h3>"; continue;} //Si no está en la lista no es válido, paso al siguiente día
//Este días es bueno, lo agrego a los dias validos
$dias_validos[] = time() + (86400 * $i);
}
//Ordenos los resultados
asort($dias_validos);
//Salida por pantalla
echo "<h3>Los días válidos son</h3>";
foreach ($dias_validos as $f){
echo date("D Y-m-d", $f)."<br>";
}
?>