Я пытаюсь создать систему бронирования, где пользователь выбирает дату и время начала.Система создает дату и время окончания на основе наибольшего времени обслуживания продукта.На данный момент это все выяснили.
В моей базе данных есть таблица для моих событий, которая имеет:
vendor_id | user_id | start | end
Начальный и конечный столбцы имеют тип DateTime.
В моем контроллере япытаясь выяснить, доступны ли конкретная дата и время, но по какой-то причине я не могу заставить ее показывать элементы, где время перекрывается.
Вот мой код контроллера:
$items = $query->where('vendor_id', $user->vendor->id)->where('start', '<=', date('Y-m-d H:i:s', strtotime($start)))->whereDate('end', '>=', date('Y-m-d H:i:s', strtotime($end)))->get();
Итак, несколько примеров сценариев ...
У меня есть событие в системе с началом 2019-01-01 13: 00: 00 и время окончания 2019-01-01 17: 00: 00 .
Если я выберу время начала 2019-01-01 12:00: 00 и время окончания 2019-01-01 16:00:00, затем он проходит мой чек выше, но эти времена явно перекрываются на несколько часов.
Я пытаюсь найти решение для извлечения предметовдаже если они перекрываются, НЕ ПРОСТО, если их время начала и окончания соответствуют определенной проверке.
Любая помощь приветствуется.