Cześć,
muszę stworzyć wyszukiwanie dostępnych godzina na rezerwacje w danym dniu.

Muszę tutaj rozwiązać kilka kwestii

  1. Terminy nie mogą nachodzić na już zarezerwowane.
  2. Admin może definiować wolne godziny
  3. Użytkownik może tymczasowo zarezerwować godzinę usługi

Dostępne godziny w całym dniu to np 10:00, 11:00, 12:00, 13:00, ... do 18:00 co godzinę

//tak wygląda zwracana tablica godzin
$hours = [
  0 => "12:00"
  1 => "13:00"
  2 => "14:00"
  3 => "15:00"
  4 => "16:00"
  5 => "17:00"
  6 => "18:00"
]

myślę że to jest oczywiste o co chodzi ale napiszę przykład
admin definiuje wolne godziny 15-16

i są już dwie rezerwacji na 13 - trwa 1:10 min
i na 17 - trwa 50 min

i teraz ktoś chce zarezerwować kolejną rezerwację która również będzie trwała 1:10 min. Realnie dostępne godziny dla takiej rezerwacji
to 15
ponieważ na 12 nie zdąży do 13
na 13 już jest i ona zajmuje czas do 14:10 więc do 15 nie zdąży
na 16 też nie może ponieważ nie zdąży do 17 może tylko na 15 ponieważ o 15 kończy mu się "przerwa" a następna rezerwacja jest dopiero o 17. Rezerwując na 15 skończy o 16:10

Dodam tylko że czas rezerwacji jest znany z góry. Tzn klient wybiera usługę, jakieś dodatki i wiadomo ile będzie to trwało. Czas trwania jest w minutach dla łatwości.

Wskazówki, kroki itd mile widziane ponieważ trochę się z tym zaplątałem