Código PHP

Días entre dos fechas en php

Días entre dos fechas en php
5 (100%) 1 voto[s]

Introducción

En nuestros proyectos en php, es muy posible que llegue un momento donde nos demos cuenta que necesitamos trabajar con fechas, y claro, el formato dd/mm/aaaa o mm/dd/aaaa al que estamos acostumbrados las personas, no es muy manejable para php.

La mejor manera de gestionar la fechas en php es hacer la conversión a tipo de dato timestamp. De esta forma, mediante timestamp, podremos realizar operaciones con fechas de manera sencilla.

Que es un timestamp

Un timestamp es un tipo de dato de php, que nos permite almacenar fechas en formato entero cuyo valor son los números de segundos transcurridos desde el 1 de Enero de 1970 00:00:00 GMT.

Convertir una fecha dd/mm/aaaa a timestamp

Antes de realizar operaciones, se debe convertir la fecha a timestamp. De esta manera los cálculos se realizarán sin errores y sin problemas.

Para realizar la conversión, debemos utilizar la función:

strtotime("dd-mm-aaaa");

en la que debemos sustituir «dd-mm-aaaa» por la fecha a convertir.

Si queremos obtener el timestamp de ahora mismo, es tan simple como hacer

echo strtotime("now");

O el timestamp del lunes que viene:

echo strtotime("next Monday");

Convertir un timestamp a fecha formato dd/mm/aaaa

Para realizar la operación inversa, es decir, convertir un timestamp a un formato dd-mm-aaaa, utilizaremos la función strftime:

echo strftime("formato de fecha", "timestamp");

Por ejemplo, para obtener la fecha en formato dd-mm-aaaa:

echo strftime("%d-%m-%Y","1249509600");

Configuración local del formato de fechas

Es posible que necesitemos configurar el formato local de fechas. Esto lo podemos hacer mediante la función setlocale:

setlocale(LC_TIME, "es_ES");

Con este método, nos aseguramos que el formato de conversión de timestamp a fecha, utilice el formato de fecha correspondiente a España.

Contar dias entre dos fechas

Una manera sencilla de calcular el número de días entre dos fechas en php, es aplicando esta sencilla función:

// Calcula el número de días entre dos fechas.
// Da igual el formato de las fechas 
// (dd-mm-aaaa o aaaa-mm-dd),
// pero el carácter separador debe ser un guión.
function diasEntreFechas($fechainicio, $fechafin){
    return ((strtotime($fechafin)-strtotime($fechainicio))/86400);
}

Que básicamente convierte las fechas a tipo timestamp, realiza la resta entre ambas fechas y divide en 86400 segundos.

Estos 86400 segundos corresponden a los segundos de un día completo (24 horas * 60 minutos * 60 segundos = 86400).

Espero que con estas funciones os sea mas sencillo manejar y realizar calculos con fechas en php.

1 comentario en “Días entre dos fechas en php”

  1. Pingback: Recorrer un rango de fechas en php - FernandezSanSalvador

Dejar un comentario

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