Я думаю, вы можете повторить на уровне приложения время назначения на соответствующую дату.
Во-первых, я предпочитаю использовать пакет Carbon.Вы можете установить, если у вас нет.
$appointments = Appointment::where('user_id', $post['user_id'])
->where('appointment_datetime', $post['bookingdate'])
->get();
$foundFlag = false;
if ($appointments->count() > 0) {
$beginDate = \Carbon\Carbon::create(date('Y-m-d') . ' ' . $begintime); // You can be add at the end of varible ":00" if not exists
$endDate = \Carbon\Carbon::create(date('Y-m-d') . ' ' . $endtime); //You can be add at the end of varible ":00" if not exists
foreach($appointments as $appointment){
$beginDateForCurrenAppointment = \Carbon\Carbon::create(date('Y-m-d') . ' ' . $appointment->appointment_time_start); // You can be add at the end of varible ":00" if not exists
$endDateForCurrenAppointment = \Carbon\Carbon::create(date('Y-m-d') . ' ' . $appointment->appointment_time_end); // You can be add at the end of varible ":00" if not exists
if ($beginDateForCurrenAppointment->between($beginDate, $endDate, true) || $endDateForCurrenAppointment->between($beginDate, $endDate, true) || $beginDate->between($beginDateForCurrenAppointment, $endDateForCurrenAppointment, true) || $endDate->between($beginDateForCurrenAppointment, $endDateForCurrenAppointment, true)) {
$foundFlag = true;
break;
}
}
}
if (! $foundFlag) {
// Insert Database
} else {
/// return back()->with('msg', 1); ///
}
Каждая логика в операторе if означает:
Если существует назначенная просьба встреча между ними, время начала встречи:
$beginDateForCurrenAppointment->between($beginDate, $endDate, true)
Еслизапросить встречу между существующим временем окончания встречи:
$endDateForCurrenAppointment->between($beginDate, $endDate, true)
Если существует встреча между запрошенным временем начала встречи:
$beginDate->between($beginDateForCurrenAppointment, $endDateForCurrenAppointment, true)
Если существует встреча между запрошенным временем окончания встречи:
$endDate->between($beginDateForCurrenAppointment, $endDateForCurrenAppointment, true)