碳 - 仅限今日或未来日期

时间:2017-05-01 15:45:58

标签: php laravel php-carbon

我在验证$pickUpDate日期时遇到问题。当我今天选择日期并提交时 - 我收到错误:Pick-up: today or future date only

它应该允许我仅使用今天或未来的日期。它不应该允许少于今天的日期。

public function withValidator($validator)
{
    $validator->after(function ($validator) {
        $pickUpDate = Carbon::createFromFormat('D j M Y', $this->pickup_date);
        $dropOffDate = Carbon::createFromFormat('D j M Y', $this->dropoff_date);

        $todayDate = Carbon::now();

        if (!$pickUpDate->gte($todayDate)) {
            $validator->errors()->add('pickup_date', 'Pick-up: today or future date only');
        }
    });
}

1 个答案:

答案 0 :(得分:2)

由于today()将返回今天的开始时间,您最后需要添加->endOfDay()

Carbon::now()->endOfDay();

或添加分钟:

Carbon::now()->addMinutes(5);

在您的情况下,您正在函数中添加now(),以检查此时间是否过去。由于此函数需要时间来检查(可能是毫秒),因此它将返回false。给你现在的碳物添加1分钟就可以了。