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.

Espero que os haya sido útil.

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

Comparte si te ha gustado:
Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0Share on Tumblr0Digg this
2 Comments

    paolo kusanovic

    Hola puedes poner el codigo de lafuncion hourIsBetween(), como sabes si la hora esta dentro del rango ?

      Oyagum

      Hola paolo! No se si te he entendido bien. Creo que quieres que ponga la función hourIsBetween? La función está puesta en el post es el primer codigo que se ve. No se si es que no se ve bien o es otra cosa lo qud preguntas. Espero haberlo aclarado y sino dimelo y estaré encantado de ayudarte en lo que pueda.

Deja un comentario

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

*
*