Saber si una hora está en un rango de horas en PHP

Rango de horas PHP

Los problemas con las fechas, son de lo más común a la hora de programar, añadir un día, restar días, comprobar si una fecha esta entre dos fechas.

Pero hoy vamos a hablar un poco más en profundidad y hablaremos de las horas de un día.

Porqué muchas veces trabajar con días es suficiente, pero a veces necesitamos tratar una franja horaria dentro de un día, para saber si pertenece esa franja al día anterior o al presente.

Así que vamos a ver como lo haríamos para ver si una fecha con hora se encuentra dentro de un rango de horas.

Función comprueba una hora entre un rango

A continuación os pongo la función que vamos a usar para ver si una hora se encuentra dentro de ese rango de horas que definamos.

En la función lo que haremos será pasarle, el desde y el hasta del rango de horas que queremos que se encuentre y el datetime con la hora que nos llega.

Comprobaremos si la segunda hora que le pasamos es inferior a la primera, con lo cual entenderemos que es para el día siguiente.

Y al final devolveremos true o false dependiendo si el valor introducido se encuentra entre lo que le hemos pasado.

Ejemplo de llamada a la función

Este sería el código que podríamos usar para hacer la llamada a la función que hemos creado para comprobar el rango de horas.

Aquí lo que hacemos es ir sumando una hora a partir de medianoche y comprobamos si esa hora que vamos sumando se encuentra dentro del rango de horas.

El resultado sería el siguiente:

Como veis al final, las 8 y las 9 no cumplen la condición y por eso sale que no y el resto si que coincide.

Como veis simplemente necesitamos un datetime, con el que poder trabajar y ver si la hora se encuentra dentro del rango de horas.

Así podríamos comprobar si una fecha guardada en base de datos se encuentra entre la sesión de un día o la sesión de otro día, en el caso de que por ejemplo tengamos algún evento que ocurre entre un cierto rango de horas.

Si os interesa también podéis consultar el artículo sobre como restar o sumar horas, minutos o segundos en PHP.

Espero que os haya sido útil.

Y recordad! No olvidéis comentar! Vuestro código y en el blog 😉