Comprobar si una fecha está dentro de un rango de fechas

El siguiente artículo os resultará bastante sencillo en cuanto al resultado pero estoy seguro que pensarlo y llevarlo a cabo no será tan fácil si no tienes unos altos conocimientos en programación PHP y conoces bien como funciona el sistema de fechas de PHP (algo complejo para el cerebro humano).

En su día necesité hacer un script que me permitiera saber en cada momento si la fecha actual está dentro de un rango de fechas. Todo con el simple objetivo ejecutar una acción u otra sabiendo que la fecha actual está dentro de un rango de fechas. Para hacerlo de forma sencilla, en el caso del ejemplo en funcionamiento lo que vamos a querer hacer es mostrar un mensaje “Estamos en vacaciones” en Agosto y el resto del año mostrar otro mensaje “Estamos abiertos”.

Hemos creado la siguiente función:

function check_in_range($date_start, $date_end, $date_now) {
   $date_start = strtotime($date_start);
   $date_end = strtotime($date_end);
   $date_now = strtotime($date_now);
   if (($date_now >= $date_start) && ($date_now <= $date_end))
	   return true;
   return false;
}

Esta función recibe 3 parámetros: la fecha de inicio de las vacaciones, la fecha de fin de las vacaciones y la fecha actual. Dentro de la función convertimos las fechas a una fecha Unix con la función strtotime() para poder compararlas después. Entonces, si la fecha actual es mayor o igual a la fecha de inicio y la fecha actual es menor o igual a la fecha de fin, significará que la fecha actual está dentro del rango de fechas vacacionales. Retornamos True en ese caso, en caso contrario False.

A continuación mostramos un ejemplo de uso de esta función:

$date_now = date('Y-m-d');
$date_start = date('Y-08-01');
$date_end = date('Y-08-31');
 
if (check_in_range($date_start, $date_end, $date_now)) {
    echo '<div class="alert alert-info">Estamos de vacaciones.</div>';
}
else {
    echo '<div class="alert alert-success">Estamos abierto al público.</strong></div>';
}

En el ejemplo verificamos que la fecha actual esté dentro del mes de Agosto para mostrar el mensaje “Estamos en vacaciones” o por el contrario mostrar el mensaje “Estamos abiertos”.

Ver ejemplo en funcionamiento

Si tienes una solución más sofisticada o tienes comentarios al respecto no dudes en darnos tu opinión.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (No hay votos)
Cargando…

Comparte en las redes sociales

Escrito por Jose Aguilar - Experto programador Prestashop y Wordpress.

Deja un comentario

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

*