![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie chciałbym prosić o pomoc, otóż nie mogę wymyślić w jaki sposób porównać godziny. Chodzi mi o to że skrypt będzie zwrazał "prawdę" np. w przedziale od 20:00-1:00, a potem fałsz
![]()
Skrypt porównuje aktualną godzinę z godzinami w zmiennych ![]() I teraz moje pytanie jak zrobić to, gdyż jeśli w zmiennej podstawię godzinę 1:00 no to skrypt już nie działa prawidłowo ![]() Może jakaś sugestia/podpowiedź. Oczywiście format godziny nie musi być 24h równie dobrze może być 12h, byleby to działało ![]() Pozdro... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
W złą stronę idziesz. Porównujesz teksty zamiast liczb.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj potraktować godzinę i minute jako jedną liczbę bez dwukropka.
Można by też pomyśleć o zastosowaniu UNIX, który do porównywania dat jest najlepszy. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź
![]() Czyli jakby to zrobić godzinę rozbić na dwie skłądowe tj. - godzina - minuty I potem każde kolejno porównywac ![]() Tak bardziej nawiązując... Mam panel administratora, w którym chcę ustawić np. wyśiwetlanie się komunikatów o danej godzinie+minuty. Myślę że wiadomo o co chodzi ![]() Tylko nie wiem jak zrobić aby godzina 1:00 była godziną późniejszą niż np. 20:00. W pm/am również nie wiem jak to rozwiązać, gdyż nie mam pomysłu ![]() Z rozbiciem na składowe można zrobić tak:
No ale niestety to nadal nie rozwiązuje problemu, bo jeśli jest godzina 20, a czas zakończenia to 1 w nocy no to i tak nie działa ![]() PS. zmienne z końcówką "g" to godziny, a z "m" minuty ![]() Edit: No ale jeśli potraktuję to jako jedną liczbę to godzina 23:00 = 2300, a godzina 01:00 = 100 więc tak czy tak nie będzie działało ![]() UNIX ![]() ![]() Ten post edytował sematuszewski 3.11.2010, 22:42:25 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Ale to będzie regularnie np. codziennie od 20 do 23 tak?
Zrób tak: Kod $godzina = (int) date('H');
Ten post edytował markonix 3.11.2010, 22:45:33 -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
No tak najlepiej regularnie, ale jeśli masz pomysł na rozwiązanie tego np. z dniami tygodnia to oki
![]() No tak (int) date('H'); tylko że to mi zwraca liczbę np. 20 ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Bo godzina 1 jest wcześniej niż godzina 20. O ile dobrze rozumiem Twój problem, to musisz porównywać całe daty.
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
No tak co racja to racja w końcu godzina 00:00 rozpoczyna nowy dzień, no nie pomyślałem
![]() Czyli mówisz, abym zrobił to tak, że skrypt porównuje najpierw godziny, a jeśli godzina przypada po 00:00 to i daqty ![]() ![]() ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
http://php.net/manual/en/function.strtotime.php + spróbuj operować na całych datach
Ten post edytował ADeM 3.11.2010, 23:25:18 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Oki dzięki za rady
![]() ![]() Tak więc z mojej strony leci do obydwu z Was pomógł ![]() ![]() Pozdro... Edit: Teraz tak myśląc wpadłem na prostszy sposób ![]() ![]() Jeśli aktualna godzina = godzinie rozpoczęcia to sprawdzany jest kolejny warunek ![]() godzina rozpoczęcia + np. 30 minut = godzinie aktualnej, to skrypt nie zostanie wykonany ![]() Jednym słowem mówiąc nie będzie przedziału między godziną, a godziną, lecz będzie godzina rozpoczęcia i przez ile minut skrypt ma przyjmować wartość 'TRUE', myślę, że to łatwiejszy sposób, a w sumie zachowany jest ten sam sens działania ![]() Pozdro... Ten post edytował sematuszewski 3.11.2010, 23:45:42 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Sposób z konwersją na int przecież zadziała w obrębie jednej doby (24).
Przecież godziny to kolejne liczby po prostu - jedna większa od drugiej. W przypadku przejścia na kolejny dzień czyli np. od 22:00 do 2:00 to po prostu warunek (jeśli większe od 22 lub mniejsze od 2). -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 08:04 |