> Faqs > Regla de validación en Laravel para la hora en formato HH:MM

Regla de validación en Laravel para la hora en formato HH:MM

Necesito hacer una regla de validación en Laravel para un campo de cadena que debe representar la hora y los minutos, en el formato HH:MM.

  • Siempre con dos dígitos
  • Valores válidos con 24 horas, es decir, de 00:00 a 23:59

Respuestas

Hola de nuevo Santiago. Para la regla de validación necesitas escribir una expresión regular.

Las reglas de expresiones regulares en laravel se expresan con "regex". Te quedaría más o menos así.

Validator::make($request->all(), [
    'hour' => ['required', 'regex:/^([01][0-9]|2[0-3]):[0-5][0-9]$/'],
]);

Esta expresión regular permite validar las horas desde 00:00 hasta 23:59. La descomposición de la expresión para que la puedas entender:

  • ([01][0-9]|2[0-3]): Esto hacer la captura del componente de la hora.
  • [01][0-9]: Permite cualquier número de 00 a 19.
  • Luego tenemos "|" que es el operador OR.
  • 2[0-3]: Permite cualquier número de 20 a 23.
  • :: Esto se asegura de que los dos componentes estén separados por un dos puntos.
  • [0-5][0-9]: Esto valida los minutos, asegurándose de que estén en el rango de 00 a 59.

Con eso ya lo tendrías. Suerte!

Julian
1147 49 87 46
Muchas gracias, funciona a la perfección!