يتحقق إذا كان التاريخ المدخل من نوع date
فإذا كان لدي الفورم التالي
<form action="{{route('validation.store')}}" method="POST"> @csrf <div class="container"> @error('started_at') <div class="alert alert-danger">{{$message}}</div> @enderror <input type="date" name="started_at" class="form-control"/> <button type="submit" class="btn btn-primary">Add</button> </div> </form>
للتحقق أن حقل started_at يرسل بيانات على شكل date
$request->validate([ 'started_at'=>'required|date', ]);
أما إذا أردنا صيغة معينة للتاريخ المرسل مثلا Y/m/d
$request->validate([ 'started_at'=>'required|date|date_format:Y/m/d', ]);
فإذا تم إدخال صيغة مختلفة سوف أحصل على الخطأ التالي
إذا كنا نريد التحقق أنه يتم إدخال التاريخ مع الوقت
$request->validate([ 'started_at'=>'required|date|date_format:Y/m/d h:i:s', ]);
إذا كنت أريد التحقق أن التاريخ المدخل قبل تاريخ اليوم
$request->validate([ 'started_at'=>'required|date|before:today', ]);
وإذا تم إدخال تاريخ بعد تاريخ اليوم سوف أحصل على الخطأ التالي
أما إذا كنت أريد أن يكون التاريخ بعد تاريخ اليوم نستخدم after
$request->validate([ 'started_at'=>'required|date|after::today', ]);
كذلك يمكن إستخدام before, after مع حقل أخر، مثلا لدي حقلين للتاريخ
<form action="{{route('validation.store')}}" method="POST"> @csrf <div class="container"> @error('started_at') <div class="alert alert-danger">{{$message}}</div> @enderror <input type="date" value="{{ old('started_at') }}" name="started_at" class="form-control"/> @error('end_at') <div class="alert alert-danger">{{$message}}</div> @enderror <input type="date" value="{{ old('end_at') }}" name="end_at" class="form-control"/> <button type="submit" class="btn btn-primary">Add</button> </div> </form>
وأريد أن أتحقق أن end_at تأتي بعد start_at أستخدم التحقق التالي في end_at
$request->validate([ 'started_at'=>'required|date', 'end_at'=>'required|date|after:started_at', ]);
أما إذا كانت قيمة end_at قبل started_at بالتالي سوف أحصل على الخطأ التالي
أما إذا أردنا أن يكون تاريخ end_at قبل تاريخ started_at بالتالي نستخدم before
$request->validate([ 'started_at'=>'required|date', 'end_at'=>'required|date|before:started_at', ]);
ان يكون قبل تاريخ معين او يساوي تاريخ معين
$request->validate([ 'started_at'=>'required|date', 'end_at'=>'required|date|after_or_equal:started_at', ]);
$request->validate([ 'started_at'=>'required|date|after_or_equal:today', ]);
ان يكون بعد تاريخ معين او يساوي تاريخ معين
$request->validate([ 'started_at'=>'required|date', 'end_at'=>'required|date|before_or_equal:started_at', ]);
$request->validate([ 'started_at'=>'required|date|before_or_equal:today', ]);