Почему, если выбранная начальная дата в месяце отличается от выбранной конечной даты, всегда появляется ошибка, говорящая о том, что формат даты недопустим? - PullRequest
0 голосов
/ 26 августа 2018

У меня есть страница редактирования, которая показывает поля start_date и end_date. Поля похожи на:

<div class="form-row">
    <div class="form-group col-md-6">
        <label for="start_date">Start date</label>
        <div class="input-group date" data-provide="datepicker">
            <input type='text' onkeydown="event.preventDefault()" name="start_date"
             value="{{!empty($c->start_date)? $c->start_date->format('d-m-y - H:i') : ''}}"
                   class="form-control" placeholder="DD/MM/YYY"/>
                   <span class="input-group-addon"><i class="fa fa-calendar" aria-hidden="true"></i></span>
        </div>
    </div>
    <div class="form-group col-md-6">
        <label for="end_date">End date</label>
        <div class="input-group date" data-provide="datepicker">
            <input type='text' class="form-control"
                   value=" {{!empty($c->end_date) ? $c->end_date->format('d-m-y - H:i') : ''}}" name="end_date" placeholder="DD/MM/YYY"/>
                    <span class="input-group-addon"><i class="fa fa-calendar" aria-hidden="true"></i></span>
        </div>
    </div>
</div>

Тогда для проверки используется:

'start_date' => 'nullable|date_format:"j-m-y - H:i"',
        'end_date' => 'nullable|date_format:"j-m-y - H:i"|after_or_equal:start_date',

Тогда для обновления используется:

$conference->start_date = (isset($request->start_date)) ? Carbon::createFromFormat('j-m-y - H:i', $request->start_date) : null;
$conference->end_date = (isset($request->end_date)) ? Carbon::createFromFormat('j-m-y - H:i', $request->end_date) : null;

Выпуск:

Обновление работает, если вставлена ​​дата начала и дата окончания в одном месяце.

Но если выбранная начальная дата находится в другом месяце от выбранной конечной даты, всегда появляется ошибка, говорящая о том, что формат даты недопустим.

Знаете почему?

1 Ответ

0 голосов
/ 26 августа 2018

Я думаю, это может быть проблема с форматированием даты.

У вас есть некоторые несоответствия в форматах даты в предоставленных вами примерах ...

Вы выводите в: d-m-y - H:i

Вы проверяете с помощью: j-m-y - H:i

И вы не указали, какой формат предоставляет средство выбора даты JS!

Необходимо убедиться, что форматы даты соответствуютвсе элементы приложений в PHP и Frontend JavaScript.Проверьте http://php.net/manual/en/function.date.php для помощи с форматированием даты PHP.И https://www.w3schools.com/js/js_date_formats.asp для дат JS, хотя я подозреваю, что вам нужно будет найти руководство по используемому вами средству выбора даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...