Laravel Tutorials

Building Powerful Date Validation with Laravel's Date Rule

Published
Building Powerful Date Validation with Laravel's Date Rule image

Laravel introduces a fluent Date rule that transforms how you validate dates in your applications. This chainable interface simplifies complex date validation requirements into readable, maintainable code.

The basic implementation demonstrates the rule's flexibility:

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()
]
];
}

Here's how this rule streamlines validation in a reservation system:

class ReservationController extends Controller
{
public function store(Request $request)
{
$validated = $request->validate([
'check_in' => [
'required',
(new Date)
->format('Y-m-d')
->afterOrEqual('today')
->before(now()->addMonths(6))
],
'check_out' => [
'required',
(new Date)
->format('Y-m-d')
->after('check_in')
],
'special_request_by' => [
'nullable',
(new Date)
->format('Y-m-d')
->between('today', 'check_in')
],
'guest_birthday' => [
'nullable',
(new Date)
->format('m/d/Y')
->beforeOrEqual('today')
->after(now()->subYears(120))
]
]);
 
Reservation::create($validated);
 
return redirect()->route('reservations.confirmation');
}
}

The Date rule's chainable methods create an expressive syntax that makes even complex date validation requirements easy to understand and maintain.

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration image

Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration

Read article
Inertia DevTools Now Available for Firefox image

Inertia DevTools Now Available for Firefox

Read article
Laravel Scalpel Scans for Filesystem Intrusion Evidence image

Laravel Scalpel Scans for Filesystem Intrusion Evidence

Read article
Mercure Broadcasting in Laravel 13.32 image

Mercure Broadcasting in Laravel 13.32

Read article
Super Stack: Laravel Starter Kit With Filament and NativePHP image

Super Stack: Laravel Starter Kit With Filament and NativePHP

Read article
Laravel MCP 1.0 Is Released image

Laravel MCP 1.0 Is Released

Read article