borrame.com - Colección particular de recortes de código y documentación para programación web

Canales RSS

Lo más fresco

  1. Bookmarklets Nuevo
  2. Recetario básico para CakePHP/2 Nuevo
  3. Certificado auto-firmado Nuevo

Sugerencias del chef

Lo más visitado

  1. Fecha y hora
  2. Dar formato a un número
  3. Reiniciar secuencia
  4. Vaciar un esquema
  5. Certificado auto-firmado
Compartir esta página

¿Esta hora está dentro de este horario?

Ésta es probablemente la función a la que me ha llevado más tiempo darle un nombre, pero la idea es simple: nuestra aplicación sólo puede hacer X dentro de un horario concreto (mostrar un aviso, mandar correo, compactar la base de datos...). ¿Podemos ahora? ¿Y a las 10:45? Pues esta función nos lo dice:

/** * Determina si la hora de referencia queda dentro del rango horario dado * * - Todas las horas son cadenas en formato HH:MM (o HH:MM:SS) * - El rango es cerrado y de tipo 9:00-14:00 o 23:00-6:00 * - Compara con la hora actual si no se indica lo contrario */ function dentro_de_horario($hms_inicio, $hms_fin, $hms_referencia=NULL){ // v2011-06-21     if( is_null($hms_referencia) ){         $hms_referencia = date('G:i:s');     }     list($h, $m, $s) = array_pad(preg_split('/[^\d]+/', $hms_inicio), 3, 0);     $s_inicio = 3600*$h + 60*$m + $s;     list($h, $m, $s) = array_pad(preg_split('/[^\d]+/', $hms_fin), 3, 0);     $s_fin = 3600*$h + 60*$m + $s;     list($h, $m, $s) = array_pad(preg_split('/[^\d]+/', $hms_referencia), 3, 0);     $s_referencia = 3600*$h + 60*$m + $s;     if($s_inicio<=$s_fin){         return $s_referencia>=$s_inicio && $s_referencia<=$s_fin;     }else{         return $s_referencia>=$s_inicio || $s_referencia<=$s_fin;     } }

El código ilustra también cómo parsear una hora en formato HH:MM:SS sin ser demasiado estrictos con los separadores o el número de dígitos.

Esta página ha sido impresa el sábado 23 de septiembre de 2017 (02:22:34 +0200) desde http://borrame.com/recortes/php/dentro-de-horario.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2017 by Álvaro González (alvaro.es) • Burgos (España) • borrame.com