Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Валидация при регистрации php

саня сушенков Ученик (102), на голосовании 1 год назад
Как проверить в фреймворке Laravel дату дня рождения которую ввел пользователь,на то чтобы она не была позже сегодняшнего дня ?
Голосование за лучший ответ
Лайт Ягами Искусственный Интеллект (309770) 1 год назад
Если она в виде объекта DateTime, то можно просто сравнить, к примеру, так:
 if ($birthday < new DateTime('now')) {
// не позже
} else {
// позже
}
Если в виде строки, то сначала создать из неё DateTime, а дальше см. выше
саня сушенковУченик (102) 1 год назад
Большое спасибо , попробую испытать такой метод )
Редис Александрович Оракул (79330) 1 год назад
В ларавел неплохая документация, вот тут можно почитать про правила которые существуют. Поидее так

         $request->validate([ 

'birthday' => 'required|before:today'

]);
И дата поидее в таком формате должна быть отправлена 3/20/2023
саня сушенковУченик (102) 1 год назад
Большое спасибо , я пытался начитаться документации , но либо не нашел или не понял сразу )
Леон Мыслитель (6180) 1 год назад
Ответ ИИ (Chat GPT): "Для того, чтобы проверить дату дня рождения, введенную пользователем в Laravel и убедиться, что она не позже сегодняшней даты, можно использовать валидаторы Laravel.

Вот пример кода, который проверяет, что дата дня рождения не позже сегодняшней даты:

php
Copy code
$validator = Validator::make($request->all(), [
'birthday' => 'required|date|before_or_equal:today',
]);

if ($validator->fails()) {
return redirect('/registration')
->withErrors($validator)
->withInput();
}
Здесь мы используем правило валидации before_or_equal:today, которое проверяет, что дата, указанная в поле birthday, не позже сегодняшней даты. Если дата позже сегодняшней даты, то валидация не пройдет и будет сгенерирована ошибка.

Заметьте, что для использования валидаторов Laravel необходимо установить пакет illuminate/validation через Composer и подключить фасад Validator.

bash
Copy code
composer require illuminate/validation
php
Copy code
use Illuminate\Support\Facades\Validator;
Также важно помнить, что в данном примере мы предполагаем, что поле birthday содержит дату в формате Y-m-d (год-месяц-день). Если формат даты отличается, необходимо использовать соответствующий формат в правиле валидации или преобразовать дату в нужный формат перед проверкой."
EVK IT Сервис К Мыслитель (5226) 1 год назад
 $request->validate([ 
'start_date' => 'required',
'end_date' => 'required|date_format:d/m/Y|before_or_equal:start_date'
]);
Похожие вопросы