Проверка Laravel: Проверьте две даты и время и проверьте их логически - PullRequest
0 голосов
/ 11 ноября 2019

Я изо всех сил пытаюсь установить правильную проверку, которая проверяет два ввода даты и два ввода времени. Это мой HTML-код до сих пор:

<div class="form-group">
    <label for="name" class="control-label">Start date</label>
    <input type="date" class="form-control" name="start_date">
</div>
<div class="form-group">
    <label for="name" class="control-label">Start time</label>
    <input type="time" class="form-control" name="start_time">
</div>
<div class="form-group">
    <label for="name" class="control-label">End date</label>
    <input type="date" class="form-control" name="end_date">
</div>
<div class="form-group">
    <label for="name" class="control-label">End time</label>
    <input type="time" class="form-control" name="end_time">
</div>

Как видите, вы можете ввести начальную дату и время начала отдельно, а также дату окончания и время окончания. Это может привести ко многим логическим ошибкам, таким как дата окончания + время окончания перед временем начала + дата начала или просто дата окончания перед временем начала.

Я хочу разрешить следующие комбинации (если естьбез начального времени, оно должно быть автоматически установлено на 00:00, а если конечное время не установлено, оно должно быть автоматически установлено на 23:59):

  1. start_date
  2. start_date & start_time
  3. end_date
  4. end_date & end_time
  5. start_date & end_date
  6. start_date & start_time & end_date
  7. start_date & end_date
  8. start_date & start_time & end_date & end_time

Это то, что я получил до сих пор для правил моего валидатора:

'start_date' => ['required_if:start_time,date_format:H:i', 'date', 'nullable'],
'start_time' => ['date_format:H:i', 'nullable'],
'end_date' => ['required_if:end_time,date_format:H:i', 'date', 'nullable'],
'end_time' => ['date_format:H:i', 'nullable'],

Однако, это не совсем работает, и я нене знаю, как это сделать. Любые советы и идеи о том, как решить мою проблему?

После того, как я проверил введенные данные, начальная и конечная дата (+ время) также должны быть проверены логически. Дата начала (+ время) должна быть раньше даты окончания (+ время).

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