Проверка Laravel времени в формате часов и минут: методы и примеры кода

Чтобы выполнить проверку Laravel времени в формате часов и минут, вы можете использовать различные методы. Вот несколько примеров:

Метод 1: использование правила регулярного выражения

use Illuminate\Validation\Rule;
$rules = [
    'time' => ['required', 'regex:/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/'],
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
    // Handle validation errors
} else {
    // Validation passed
}

Метод 2: использование специального правила проверки

use Illuminate\Contracts\Validation\Rule;
class TimeFormatRule implements Rule
{
    public function passes($attribute, $value)
    {
        return preg_match('/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/', $value);
    }
    public function message()
    {
        return ':attribute must be in hours and minutes format (HH:MM).';
    }
}
$rules = [
    'time' => ['required', new TimeFormatRule],
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
    // Handle validation errors
} else {
    // Validation passed
}

Метод 3: использование специального правила проверки с регулярным выражением

use Illuminate\Contracts\Validation\Rule;
class TimeFormatRule implements Rule
{
    public function passes($attribute, $value)
    {
        return preg_match('/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/', $value);
    }
    public function message()
    {
        return ':attribute must be in hours and minutes format (HH:MM).';
    }
}
$rules = [
    'time' => ['required', 'regex:/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/'],
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
    // Handle validation errors
} else {
    // Validation passed
}