如何在验证 Laravel 中设置比较日期时间?

Suc*_*Man 7 validation datetime required laravel laravel-5.3

我使用 Laravel 5.3

我的 Laravel 验证是这样的:

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class AddCartRequest extends FormRequest
{
    public function rules()
    {
        return [
            'id'=>'required|numeric',
            ...
            'request_date'=>'required'
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

如果 request_date 的值为

01-08-2017 13:00:00

我想添加这样的条件:

如果请求日期 < 现在 + 5 小时,则会显示消息:“请求日期必须比现在大 5 小时”

我该怎么做?

gvi*_*iew 13

我想你可以用 after:date

验证字段必须是给定日期之后的值。日期将被传递到 PHP strtotime 函数中。

您只需要使用以下内容创建正确的日期字符串:

'request_date'=>'after:'.date(DATE_ATOM, time() + (5 * 60 * 60)),
Run Code Online (Sandbox Code Playgroud)

似乎您也可以像这样链接这些规则:

'request_date' => 'required|date_format:Y-m-d H:i:s|after:5 hours'
Run Code Online (Sandbox Code Playgroud)