Проверка настраиваемого формата даты с помощью валидатора laravel

В моем приложении пользователь выбирает дату из средства выбора даты, а затем дата отображается во входных данных в формате, соответствующем языку пользователя.

Когда форма отправлена, я хотел бы проверить соответствующую дату, однако валидатор не знает формат даты, в котором была отправлена ​​дата.

Мой вопрос в том, должен ли я преобразовать дату в Y-m-d, прежде чем она будет передана валидатору, или есть способ указать валидатору правильный формат для валидации?

Вы можете попробовать использовать только правило date, в противном случае я бы предложил изменить его на Y-m-d перед проверкой. laravel.com/docs/5.6/validation#rule-date

Marwelln 11.05.2018 10:20

Если вы используете input[type = "date"] со своим datepicker, передаваемое значение всегда будет Y-m-d.

Marwelln 11.05.2018 10:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
30
2
50 030
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Пользовательские правила проверки Laravel

Вы можете определить мультиформатную проверку даты в вашем AppServiceProvider.

class AppServiceProvider extends ServiceProvider  
{
  public function boot()
  {
    Validator::extend('new-format', function($attribute, $value, $formats) {

      foreach($formats as $format) {

        $parsed = date_parse_from_format($format, $value);

        // validation success
        if ($parsed['error_count'] === 0 && $parsed['warning_count'] === 0) {
          return true;
        }
      }

      // validation failed
      return false;
    });
  }
}

Теперь вы можете использовать настраиваемое правило проверки:

'your-date' => 'new-format:"Y-m-d H:i:s.u","Y-m-d"'

Ответ принят как подходящий

Более простой вариант - использовать Laravel date_format:format. правило (https://laravel.com/docs/5.5/validation#rule-date-format). Это встроенная функция в Laravel, для которой не требуется настраиваемое правило (доступно в Laravel 5.0+).

Ты можешь сделать:

$rule['date'] = 'required|date_format:d/m/Y';

или же

$rule['date'] = 'required|date_format:Y-m-d';

Другие вопросы по теме