![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam pewien problem i nie do końca opracowałem sposób jego rozwiązania. Otóż mam w bazie danych dwa pola:
Data przedstawia datę i godzinę rozpoczęcia seansu wyrażoną w postaci YYYY-MM-DD HH:MM:SS. Czas_seansu to jego długość wyrażona w minutach. (chyba int 2 wystarczy bo większy zakres przekracza możliwości i kina i człowieka ![]() Uznałem że dla daty rozpoczęcia muszę mieć format datetime bo może się zdarzyć np pokaz sylwestrowy 31.12.2010 o godz. 23:00 i trwać do 01.01.2011 godz. 01:00 teraz tak: Chcę dodać nowy seans, jednocześnie sprawdzając czy dana sala o konkretnej godzinie nie jest zajęta - wiadomo, w jednej sali dwóch filmów nie może być. Pomijam samo dodanie - problem mam z weryfikacją czy sala o określonej godzinie jest zajęta czy wolna. Wyciągam więc z bazy danych seans na podstawie daty i czasu:
mam więc tablicę z wynikami. Ale do daty rozpoczęcia seansu muszę dodać czas jego trwania żebym wiedział kiedy zwolni się sala (zabezpieczam się przez nałożeniem się końca pierwszego seansu i początkiem drugiego w tym samym czasie na jednej sali). No i właśnie tutaj pytanie - jaki sposób dodania czasu seansu bo daty jest prawidłowy? próbuję użyć strtotime() i date() ale z mizernym skutkiem. wszystkie potrzebne dane są w bazie, nie bardzo tylko wiem jak do mam je wykorzystać po stronie php ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Zapisz po prostu w bazie dwie daty, startu i końca w postaci znacznika czasu, lub DATETIME jak Tobie wygodniej i wszystkie problemy powinny się rozwiązać
![]() -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Datę najlepiej trzymać w formacie unix timestamp (przeczytaj o funkcji strtotime).
Później jak chcesz dodać np. 1h to dodajesz 3600 to wartości daty. Poniżej mały przykład:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Jeśli już korzysta z strtotime to na cholerę ma dodawać w skrypcie? Nie po to strtotime ma 2 parametry by robić coś naokoło, skoro można od razu. Zamiast:
nie prościej , gdzie zamiast time() możesz dać dowolny czas typu timestamp. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zapisz po prostu w bazie dwie daty, startu i końca w postaci znacznika czasu, lub DATETIME jak Tobie wygodniej i wszystkie problemy powinny się rozwiązać ![]() ok ale dajmy na to, że podam datę początkową: 2010-20-20 a datę końcową 2010-20-20. seans trwa rok. jak sprawdzić czy data końcowa nie jest wzięta z kosmosu? w przypadku roku to ok. to jest logiczne. no ale jeśli seans trwa 2 godziny a ja wpisze 4 godziny dla seansu? chciałbym zrobić wersję idioto odporną - czyli nawet jeśli posadzić małpę przy komputerze i kazać jej dodać seans to nie wrzuci do bazy danych z d...y wziętych.... co do strtotime... narazie cały czas mam datę 1970.... muszę sprawdzić dlaczego.. //edit - pytanko małe:
da się zamiast '+1 hour' wprowadzić parametr dynamicznie pobrany ze zmiennej ? możliwe że źle zapisuję ale wolę zapytać niż próbować zrobić coś czego się nie da ![]() //edit2 zrobione ![]() Ten post edytował Darkstorm 23.08.2010, 13:42:05 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 18:59 |