logo cosasdedevs
Cómo crear un rango de fechas desde dos fechas con PHP

Cómo crear un rango de fechas desde dos fechas con PHP



My Profile
Oct 22, 2021

Hola 👋. Esta semana me he vuelto a pelear con PHP para crear un array con un rango de fechas desde una fecha de inicio y otra de fin. Para no tener que estar buscando como hacerlo dentro de otros tres meses he decidido convertirlo en tutorial para tenerlo en la guantera y de paso ayudar a más gente 😁.

Para solucionar esto, he creado esta función que os dejo aquí y que explicaré como funciona más abajo:

function getRangeDate($date_ini, $date_end, $format) {

    $dt_ini = DateTime::createFromFormat($format, $date_ini);
    $dt_end = DateTime::createFromFormat($format, $date_end);
    $period = new DatePeriod(
        $dt_ini,
        new DateInterval('P1D'),
        $dt_end,
    );
    $range = [];
    foreach ($period as $date) {
        $range[] = $date->format($format);
    }
    $range[] = $date_end;
    return $range;
}

$ranges = getRangeDate('2021-01-01', '2021-03-31', 'Y-m-d');

Esta función recibe una fecha de inicio, una fecha de fin y el formato en el que viene la fecha que también será el formato en el que retornaremos el rango de fechas.

Convertimos la fecha de inicio y fin en instancias de la clase DateTime para después crear una instancia con la clase DatePeriod. Esta clase nos permite crear un intervalo entre dos fechas. También enviamos el intervalo que será de un día creando una instancia de la clase DateInterval.

Por último, solo debemos iterar sobre el objeto $period y en cada iteración obtendremos cada una de las fechas. Estas las guardamos con el mismo formato con el que las recibimos en un array.

Como DatePeriod no incluye la última fecha, la añadimos nosotros y al final retornamos el array con la lista de fechas.

Y eso es todo por este tutorial. Espero que os haya gustado y como siempre, os recomiendo seguirme en Twitter para estar al tanto de los nuevos tutoriales y ahora también podéis seguirme en Instagram donde estoy subiendo tips, tutoriales en vídeo e información sobre herramientas para developers.

Nos leemos 👋.

156 vistas

🐍 Sígueme en Twitter

Si te gusta el contenido que subo y no quieres perderte nada, sígueme en Twitter y te avisaré cada vez que cree contenido nuevo 💪
Luego ¡Te sigo!

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para mejorar la experiencia del usuario a través de su navegación. Si pulsas entendido aceptas su uso. Ver política de cookies.