PHP – Date – Sumar días hábiles
Función que suma un numero determinado de días hábiles a una fecha en formato yyyy-mm-dd.
No tiene en cuenta los sábados y domingos y se utiliza la función getDiasFetivos donde se han de indicar los dias festivos del año.
La fecha original no se modifica y devuelve la nueva fecha con los días sumados.
/**
* Class HelperDate
*/
abstract class HelperDate
{
/**
* Suma un número de dias habiles (positivo) a una fecha
* Se salta los dias festivos del mismo año
* (cuidado con el cambio de año)
* Formato de fecha: yyyy-mm-dd
*
* @param string $fecha
* @param int $dias
*
* @return string
*/
public static function sumarDiasHabiles($fecha, $dias)
{
if ($dias < 0) {
return null;
}
$reales = 0;
for ($n = 1; $n <= $dias; $n++) {
do {
$reales++;
$fecha = HelperDate::sumarDiasNaturales($fecha, 1);
$wd = HelperDate::getDayOfWeek($fecha);
/* Es mayor que el viernes o es festivo */
} while ($wd > 5 ||
in_array($fecha, self::getDiasFetivos()));
}
return ($fecha);
}
/**
* Devuelve los días festivos
* @return array
*/
public static function getDiasFetivos()
{
return [];
}
}
Funciones relacionadas
- HelperDate::sumarDiasNaturales : Sumar dias naturales a una fecha formato yyyy-mm-dd
- HelperDate::getDayOfWeek : Devolver el número del día de la semana
