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

How can I validate given time is greater then current time using Carbon on Laravel?

我想验证格式为 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',
]);