Conocer las diferencia de días entre dos fechas, es algo muy habitual en la programación. Muchos procesos que se informatizan necesitan conocer los días que existen entre dos fechas, ya sea para sistemas de tramites, consultas, sistemas de reservación, procesos de penalizaciones por tiempo entre muchos otros.

El procedimiento que le proponemos desarrollado en PHP, le permitirá conocer la diferencia de días entre dos fechas, al igual, que la diferencia teniendo en cuenta solamente los días hábiles de lunes a viernes.

function obtener_diferencia_dias($fecha_string1,$fecha_string2,$fin_semana=NULL)
{
	$fecha_uno=mktime(0,0,0,date("m",strtotime($fecha_string1)),date("d",strtotime($fecha_string1)),date("Y",strtotime($fecha_string1)));
    $fecha_dos=mktime(0,0,0,date("m",strtotime($fecha_string2)),date("d",strtotime($fecha_string2)),date("Y",strtotime($fecha_string2)));
	if(comprobar_fecha($fecha_uno)==true && comprobar_fecha($fecha_dos)==true)
	{
		$diferencia=$fecha_dos - $fecha_uno;
        $diferencia=$diferencia/(24*60*60);
		if($fin_semana==true)
		{
			$dias_laborales=0;
			for($i=$fecha_uno;$i<$fecha_dos;$i+=86400)
			{
				if(date('D',$i)!='Sat' && date('D',$i)!='Sun')
				{
				  $dias_laborales++;
				}
			}			
			return $dias_laborales;
		}
		else
        return $diferencia;
	}
	else
	{
		return false;
	}	
}

function comprobar_fecha($fecha)
{
	if(checkdate(date("m",$fecha),date("d",$fecha),date("Y",$fecha)))
	{
	 	return true;
	}
	return false;
}
$fecha_string1="04-04-2016";
$fecha_string2="15-04-2016";
print obtener_diferencia_dias($fecha_string1,$fecha_string2,true);

Compartir en: