Я изо всех сил пытаюсь установить правильную проверку, которая проверяет два ввода даты и два ввода времени. Это мой 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):
- start_date
- start_date & start_time
- end_date
- end_date & end_time
- start_date & end_date
- start_date & start_time & end_date
- start_date & end_date
- 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'],
Однако, это не совсем работает, и я нене знаю, как это сделать. Любые советы и идеи о том, как решить мою проблему?
После того, как я проверил введенные данные, начальная и конечная дата (+ время) также должны быть проверены логически. Дата начала (+ время) должна быть раньше даты окончания (+ время).