Rezerwacja daty

0

Witam mam do napisania skrypt rezerwacji terminu i problemem jest blokowanie zarezerwowanych dat.
W bazie mam date_from i date_to w formacie yyyy-mm-dd gg:mm:ss.
Mam już wyliczony czas usługi - w minutach.
Teraz muszę zablokować daty gdzie czas usługi koliduje z rezerwacjami ale nie wiem jak je wyciągnąć.
Ograniczeniem jest czas pracy 8-18.
Do blokowania dat w kalendarzu potrzebuje format yyyy-mm-dd.
Wybór terminu ograniczyłem do 3 miesięcy od aktualnej daty.

Jak mam rozwiązać takie coś?

0

Pewnie przyda Ci się mysql-owe BETWEEN. Poza tym to Google oczywiście ;)

1

Przy rezerwacji nowej usługi musisz dokonać następującego sprawdzenia:

Czy istnieje usługa, która rozpoczyna się przed datą końcową dodawanej i kończy się po dacie początkowej dodawanej?

Jeżeli na powyższe pytanie odpowiedź jest twierdząca, to nie można zarezerwować nowej usługi we wskazanym okresie.

Oczywiście wszystkie daty zawierają godzinę.

W bazie danych można to sprawdzić zwykłym select count(*)

0

Czy istnieje usługa, która rozpoczyna się przed datą końcową dodawanej i kończy się po dacie początkowej dodawanej?

Problem w tym, że najpierw chcę zablokować terminy gdzie niemożliwa jest rezerwacja ze względu na wyliczony czas a dopiero potem wybierać.
Czyli ograniczenia: czas pacy od-> rezerwacje w danym dniu ->czas pracy do.
Chcę sprawdzać czy wyliczony czas mieści się w tych wolnych przedziałach, jak nie to zablokować datę w kalendarzu.
Później ewentualnie przed przesłaniem danych sprawdzić czy ktoś nie zarezerwował w międzyczasie tego terminu.

Czekając na jakieś propozycje rozwiązania stworzyłem sobie funkcję liczącą odstępy czasowe

 
function roznica_data($data_poczatek, $date_koniec) 
{ 

 return round(((strtotime($date_koniec) - strtotime($data_poczatek)) / 60)); 
}

// wyswietlanie roznicy dat

echo roznica_data("2008-10-1 10:00:00", "2008-10-1 11:00:00");

1 użytkowników online, w tym zalogowanych: 0, gości: 1