![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Hejka,
zastanawiam się jak należy zaprojektowac bazę/aplikacje pod kątem użytkowników z różnych stref czasowych. Załóżmy, że mamy moduł komumunikacji i rozmawia ze sobą dwóch użytkownikow z roznych stref czasowych. W jaki sposób zapisywać czasy wiadomosci w bazie? A na dodatek serwer tez stoi w innej strefie niż ci użytkownicy. Albo kalendarz i ktos ustawil na wydarzenie powiadomienia 4 godziny przed wydarzeniem. Jak serwer ma pobierac poprawnie wydarzenia z roznych stref i sprawdzac ze wlasnie ma juz pojsc powiadomienie? Czy moze przy czasie w tabeli dodac jeszcze kolumne STREFA gdzie bedzie podane z jakiej strefy szlo zapytanie? np "+02:00", "-11:00". Tylko wowczas jak pisac zapytanie by bylo optymalnie? A moze jeszcze inaczej do tego podejsc? Pisał już może ktoś coś takiego i moze podzielić się doświadczeniami w tej materii? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiadomości... X wysyła z USA o 10:00 do Y który jest w PL. W bazie zapisujesz 10:00 bo taka była godzina u X w chwili wysłania wiadomości.
Y odbiera wiadomość i widzi, że X wysłał ją o 16 czasu PL. Dlaczego czas X jest lepszy od zapisu do czasu serwera? Bo miejsce serwera może się zmienić, a pobyt X nie. Tym samym jak X wyśle wiadomość o 10 do Y, a Y wyjedzie z PL i będzie gdzie indziej, zawsze będzie miał aktualny czas, będący wyliczony na zasadzie strefy czasowej, tam gdzie aktualnie się znajduje, względem czasu wysłania przez X. Y nie będzie miał pretensji, że w PL była 17, a jak wyjechał do UK zrobiła się 16, ponieważ w UK jest taka a nie inna strefa i to on musi się dostosować a nie odwrotnie. W powiadomieniach jest inaczej. X chce być powiadomiony o 10 czasu USA, czyli swojego. Serwer który jest w PL ma inna strefę, ale to nie ma znaczenia, ponieważ cron sprawdza tylko strefę czasową z jaką zostało zapisane powiadomienie (godzina i strefa X). Czyli aktualny czas serwera + strefa X = sprawdzam czy można już wysłać zawiadomienie. Oczywiście to proste przykłady, bo jazda zacznie się przy wielu powiadomieniach do wielu użytkowników z różnych stref, ale to już inny temat ;) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 12:03 |