Estadísticas del código: Días hábiles entre dos fechas dadas - PHP

Imágen de perfil
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Días hábiles entre dos fechas dadas


PHP

estrellaestrellaestrellaestrellaestrella(10)
Actualizado el 21 de Mayo del 2017 por Kip (28 códigos) (Publicado el 19 de Noviembre del 2016)
21.128 visualizaciones desde el 19 de Noviembre del 2016
Una función que recibe dos fechas en el formato YYY-mm-dd y retorna un arreglo con los meses y sus respectivos días hábiles, ejemplo de uso:

1
$dias_habiles = bussiness_days('2016-04-03', '2016-04-15');

De esa forma ahora $dias_habiles contiene un array bidimensional, en este ejemplo solo se obtiene un array con un elemento cuyo indice seria el año-mes y cuyo valor es otro array con los días hábiles, cabe recalcar que es posible obtener mas elementos todo depende de las fechas que reciba la funcion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array
(
    [2016-04] => Array
        (
            [0] => 04
            [1] => 05
            [2] => 06
            [3] => 07
            [4] => 08
            [5] => 11
            [6] => 12
            [7] => 13
            [8] => 14
            [9] => 15
        )
 
)

Ahora bien, con aquel array lo que se podria hacer para obtener el numero total de días hábiles en cada mes o meses entre las dos fechas es usar un foreach e ir mostrando cada indice y usar count() para obtener el total de los días que seria cada valor del indice, algo asi:

1
2
3
4
5
foreach ($dias_habiles as $anio_mes => $dias) {
	$dias_mes = count($dias);
	$mensaje = "{$anio_mes} | {$dias_mes}";
	echo ($dias_mes > 1) ? "{$mensaje} dias<br>" : "{$mensaje} dia<br>";
}

Esto te mostraría algo así:

2016-04 | 10 dias

EXTRA

Si crees que no necesitas los numeros de los dias del mes y buscas el numero total de dias hábiles nada mas, puedes colocar como cuarto argumento la cadena 'sum', de esta forma te traera un array como indices el año-mes y como valor de este el total de dias de hábiles de dicho mes, ejemplo:

1
$dias_habiles = bussiness_days('2016-04-03', '2016-04-15', 'SUM');

Te retornara algo asi:

1
2
3
4
Array
(
    [2016-04] => 10
)


Espero les sirva.

Saludos

282 visualizaciones durante los últimos 90 días


12
0