如何在 Laravel 上使用 Carbon 验证给定时间大于当前时间?

问题描述

我想验证格式为 H:i:s(例如“16:35:00”)的时间输入是否大于当前时间。

$request->validate([
  'start_time' => 'required|after:Now','end_time' => 'required|after:start_time',]);

以上代码检查日期而不是时间。

解决方法

使用 setDateFrom(开始于开始,结束于结束)更改要与实际输入进行比较的日期,以便只检查时间与您最初提供的日期时间:

$request->validate([
  'start_time' => 'required|after:' . Carbon::now()->format('H:i:s'),'end_time' => 'required|after:start_time',]);
,

但是,它不会验证不同日期的时间(例如 09:00 PM - 03:00 AM 第二天)。在这种情况下,start_timeend_time 应提供为 HH:mm,但您可以轻松更改它。

$this->validate($request,[
    'start_time' => 'date_format:H:i','end_time' => 'date_format:H:i|after:start_time',]);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...