Lenguaje PHP

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.

Contar días entre fechas PHP Ejemplos
Contar días entre fechas PHP Ejemplos

Me ayudan a seguir escribiendo en profundidad sobre este tema, por el costo de un café!

[paypal-donation amount:”5″]

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Un comentario

  1. 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,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba