Laravel 5.5。如何使用laravel验证器验证日期

时间:2018-06-07 12:16:16

标签: php laravel

我有一些字段定义了passport_issued_date和passport_expiration_date。我需要通过与当前时间比较来检查给定护照的活动。我会通过使用本机php来实现,但是我想知道是否有某种方法可以在日期使用laravel 5.5验证进行验证。

2 个答案:

答案 0 :(得分:3)

试试这种方式,

$current_time=\Carbon\Carbon::now();

$validator = Validator::make($request_data, [
    'passport_issued_date' => ['date_format:Y-m-d H:i:s',"after_or_equal:$current_time"]        
]);

if ($validator->fails()) {
    return response()->json(['error' => $validator->errors()], 422);
}

答案 1 :(得分:0)

查看此规则https://laravel.com/docs/5.5/validation#rule-datehttps://laravel.com/docs/5.5/validation#rule-date-format 以及所有可用规则https://laravel.com/docs/5.5/validation#available-validation-rules

Validator::make($request_data, [
    'start_date' => 'date',
    'end_date' => 'date|after_or_equal:start_date',
]);

Validator::make($request_data, [
    'start_date' => 'date_format:Y-m-d H:i:s',
    'end_date' =>'date_format:Y-m-d H:i:s||after_or_equal:start_date',
]);

之后

if ($validator->fails()) {
    return response()->json(['error' => $validator->errors()], 422);
}