Validación de fechas con la regla Date de Laravel

  • Publicado el 19 febrero, 2025
  • Palabras: 173

¿Necesita más control sobre la validación de fechas? La nueva regla Date de Laravel ofrece una interfaz fluida y encadenable para crear requisitos de validación de fechas complejos con un código mínimo.

Validación de fechas con la regla Date de Laravel

#Uso básico

La validación de fecha suele requerir múltiples condiciones, como verificación de formato, validación de rango y comparaciones de fechas relativas. La nueva regla Date de Laravel simplifica estos requisitos al proporcionar una sintaxis clara y encadenable para todas sus necesidades de validación de fecha. Veamos cómo funciona:

 

use Illuminate\Validation\Rules\Date;

public function rules()
{
    return [
        'start_date' => [
            'required',
            new Date  // Basic date validation
        ],
        'end_date' => [
            'required',
            (new Date)
                ->after('start_date')
                ->before('2025-01-01')
        ],
        'birth_date' => [
            'required',
            (new Date)
                ->format('d/m/Y')
                ->beforeToday()
        ]
    ];
}

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en un sistema de gestión de eventos:

 

class EventRegistrationController extends Controller
{
    public function store(Request $request)
    {
        $request->validate([
            'event_date' => [
                'required',
                (new Date)
                    ->format('Y-m-d')
                    ->afterToday()
                    ->before('2025-12-31')
            ],
            'registration_deadline' => [
                'required',
                (new Date)
                    ->beforeOrEqual('event_date')
                    ->after('today')
            ],
            'early_bird_until' => [
                'required',
                (new Date)
                    ->between('today', 'registration_deadline')
            ],
            'cancellation_date' => [
                'required',
                (new Date)
                    ->betweenOrEqual('registration_deadline', 'event_date')
            ]
        ]);

        // Create event logic...
    }
}

 

La regla Date proporciona un conjunto completo de métodos que facilitan la lectura y el mantenimiento de los requisitos de validación de fechas complejos. Piense en ella como un conjunto de herramientas dedicado a la validación de fechas: ya sea que necesite una validación de formato simple o relaciones de fechas complejas, existe un método para eso.

 

Esto resulta especialmente valioso cuando:

 

  • Validar rangos de fechas para reservas o eventos
  • Garantizar secuencias de fechas lógicas
  • Manejar diferentes formatos de fecha
  • Trabajar con fechas relativas
  • Implementar restricciones de edad


Por ejemplo, en lugar de escribir una lógica de validación personalizada para verificar si una fecha se encuentra dentro de un rango específico, puede simplemente encadenar los métodos apropiados.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Dominando la validación en tiempo real en Laravel Livewire
341

Dominando la validación en tiempo real en Laravel Livewire

Validación única de Laravel para múltiples columnas
185

Validación única de Laravel para múltiples columnas

Validación de correo electrónico en Laravel con la regla de validación email
448

Validación de correo electrónico en Laravel con la regla de validación email

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión