Contar días entre fechas PHP: Ejemplos
Contar días entre fechas PHP. Cuando desarrollamos en PHP u otro lenguaje de programación es habitual encontrarse con este detalle, de calcular la diferencia de días entre dos fechas dadas. Así que en este tutorial les compartiré la solución que aplico en mis proyectos.
Utilizaremos la clase DateTime de PHP
Para calcular los días de diferencia entre dos fechas dadas utilizo DateTime::diff que funciona en PHP 5.3 y superior. Si estás usando una versión más antigua, creo que es hora de ir actualizando o migrar a otro servidor, caso contrario contactar con el soporte para que actualicen tu versión de PHP.
Contar días entre fechas PHP
Es muy importante configurar tu zona horaria antes de programar con fechas y horas. Para configurar tu zona horaria utiliza el siguiente código. Puedes ver la lista entera de timezones aquí.
date_default_timezone_set("America/Lima");
Ejemplo #01 New DateTime.
Vamos a obtener los valores timestamp de las fechas dadas. Como los dos timestamps son segundos, no tenemos más que hacer una operación para restarlos y obtener los segundos de diferencia entre las fechas. Para después convertir esos segundos en días.
<?php $fecha1= new DateTime("2017-08-01"); $fecha2= new DateTime("2017-08-04"); $diff = $fecha1->diff($fecha2); // El resultados sera 3 dias echo $diff->days . ' dias'; ?>
Otro ejemplo que pudiéramos usar es la siguiente. Necesitamos saber la cantidad de días que un cliente reservó una habitación. La fecha de hoy es 04-08-2017
y el huésped reservó la habitación el 01-08-2017
, Si observamos a detalle la reserva es de 3 días. Ahora calcularemos los días en PHP.
<?php $fecha1= new DateTime("2017-08-04"); $fecha2= new DateTime("2017-08-01"); $diff = $fecha1->diff($fecha2); // El resultado es de 3 dias echo $diff->days .' dias'; // Si desea comprobar si hay menos echo ($diff->invert == 1) ? ' - ' . $diff->days .' dias' : $diff->days .' dias'; ?>
Ejemplo #02 Utilizando función.
Para lograr el mismo resultado de saber la cantidad de días entre dos fechas utilizaremos en esta ocasión funciones.
<?php // fecha 1 $fecha_dada= "1985/08/28"; // fecha actual $fecha_actual= date("Y/m/d"); function dias_pasados($fecha_inicial,$fecha_final) { $dias = (strtotime($fecha_inicial)-strtotime($fecha_final))/86400; $dias = abs($dias); $dias = floor($dias); return $dias; } ?>
<p>Días que pasaron </p> <?php dias_pasados($fecha_dada,$fecha_actual); ?>
Ejemplo #03 Utilizando método GET.
En este ejemplo utilizaremos el método GET pasando por la URL de nuestro proyecto.
<?php $salida = $_GET['salida']; $ingreso = $_GET['ingreso']; // salida es la fecha SALIDA function dias_pasados($fecha_inicial,$fecha_final) { $dias = (strtotime($fecha_inicial)-strtotime($fecha_final))/86400; $dias = abs($dias); $dias = floor($dias); return $dias; } ?>
Imprimir resultados
<p>Días que pasaron </p> <?php echo dias_pasados($salida,$ingreso); ?>
Espero que la breve explicar de calcular días entre dos fechas les haya servido en grande, saludos desde la virtualidad.
[paypal-donation amount:»5″]
Felicitaciones, trabajo en soporte informatico para un hospital publico y la verdad sin saber programación he aprendido mucho de tu blog para ayudar a los trabajadores de la salud con tareas simples como planillas que antes eran un problema y ahora estan en php gracias a los conocimientos que he recabado de muchos lugares como este blog.
Saludos,