如何编写与当前日期进行比较的早于或等于日期验证?

Hen*_*nry 6 php date laravel

我是 Laravel 新手,正在使用 Laravel 6.x。我需要编写一个验证,查看用户在表单上提供的日期(通过 JQuery 日期选择器),以确保用户选择的日期是当前日期或之前的日期。我无法弄清楚如何在表达式中不使用撇号的情况下表达当前日期,这会扰乱 Laravel 正确理解验证。

例如,如果我写:

'sleep_date' => ['required', 'before-or-equal-date: Date(Y-m-d)']
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为 Date 函数的参数周围没有撇号。但是如果我像这个例子一样添加撇号,Laravel 会说存在语法错误:

'sleep_date' => ['required', 'before-or-equal-date: Date('Y-m-d')']
Run Code Online (Sandbox Code Playgroud)

我该如何编码才能使其按预期工作?

por*_*s Ψ 6

您可以用点连接当前日期:

'sleep_date' => ['required', 'before_or_equal:' .  Date('Y-m-d')]
Run Code Online (Sandbox Code Playgroud)

您也可以以相同的方式使用 laravelnow()助手:Date()

'sleep_date' => ['required', 'before_or_equal:' . now()->format('Y-m-d')]
Run Code Online (Sandbox Code Playgroud)