Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Aplikacja i uzytkownicy z roznych stref czasowych
nospor
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat
Skupmy sie wiec na tym. Czyli w tym przypadku zapisujesz date taka jaka jest u nadawcy. Tak wiec dodajesz jeszcze pole ze strefa przy wiadomosci, czy streffe pobierac bedziesz z danych usera?
Bo jesli dodajesz pole na strefe, to za kazdym razem gdy bedzie gdzie data trzeba od razu dodawac pole ze strefa. Strasznie to rosnie.
Jesli zas korzystac bedziesz ze strefy usera gdzies tam zapisanej, to gdy user zmieni sobie te strefe, to nagle ta data bedzie pokazywac zlą godzine, no chyba ze przy kazdej zmienie strefy przez usera bedziesz konwertowal wbisy wbazie do aktualnej strefy ktora zaznaczyl.


Strefa jest zapisana w danych o użytkowniku. I to z niej jest pobierana i na jej podstawie zapisujesz wiadomość. Jak użytkownik zmieni strefę, to nowe wiadomości są zapisane wedle niej, a stare zależą od Twojej wyobraźni ;) Zmiana godziny w wysłanej wiadomości po tym jak użytkownik zmienił strefę, jest bez sensu. Nie bawiłbym się w kompatybilność wsteczną, a jak już to jest od tego prosta metoda i informacje "+ 3 hour" też idzie zapisać u użytkownika np. jeśli by tego chciał... Choć to bez sensu, patrz post wyżej o wyjeździe do UK.

Cytat
Jesli do bazy bedziesz zapisywal wszystko przekonwertowane do daty bazowej, to rowniez nie ma znaczenia, czy serwer zostal przeniesiony czy nie, bo w wpisy wbazie sie nie zmienily.
Rownie gdy user zmieni w swoich ustawieniach strefe, to rowniez nadal wszystko bedzie ok, bo w bazie wpisy nadal sa w strefie bazowej i zadnen problem przekonwertowac je do aktualnej strefy usera.


Będąc X wysyłasz wiadomość o 10:00 konwertujesz to na 16:00 czasu serwera i gdzieś tam sprawdzasz że jest 18:00 u Y tak? Zmieniasz serwer, zamiast 16:00 masz 23:00 i musisz teraz to regulować w dwóch miejscach u X i u Y, zamiast tylko u Y.


Proponuję na tym zakończyć dyskusję, obaj mamy racje, kwestia podejścia. Choć zaraz przyjdzie ktoś kto zna się lepiej na MySQL i napisze parę regułek zamiatając temat ;)

Ten post edytował !*! 16.10.2013, 13:37:16
Go to the top of the page
+Quote Post

Posty w temacie
- nospor   Aplikacja i uzytkownicy z roznych stref czasowych   16.10.2013, 08:58:44
- - !*!   Zapisuj czas serwera + datetime i po stronie użytk...   16.10.2013, 09:07:41
- - rocktech.pl   Witam. Czas trzymaj w "timestampie" (on...   16.10.2013, 09:11:57
- - nospor   @!*! moglbys rozwinac swoją mysl bo chyba ...   16.10.2013, 09:20:09
- - !*!   [PHP] pobierz, plaintext $timezone = new DateTime...   16.10.2013, 09:33:50
- - nospor   !*! no wlasnie mniej wiecej teraz tak mam ...   16.10.2013, 09:46:46
|- - !*!   Cytat(nospor @ 16.10.2013, 10:46:46 )...   16.10.2013, 09:50:27
- - nospor   Ok, skoro wiec w bazie będę zapisywał daty w czasi...   16.10.2013, 10:03:58
- - !*!   Zostaw czas letni i zimowy bo on nie ma znaczenia....   16.10.2013, 10:06:36
- - nospor   Jeszcze nie jestem przekonany 1) Rozwazmy doklad...   16.10.2013, 10:15:47
- - !*!   Cytat1) Rozwazmy dokladniej ten przypadek z poprze...   16.10.2013, 10:23:58
- - nospor   CytatWłaśnie to staram Ci się wyjaśnić, rozpisz to...   16.10.2013, 10:37:02
- - !*!   A w jakiej postaci google zwraca te dane? Nigdy si...   16.10.2013, 10:39:11
- - nospor   Google zwraca dane w takiej postaci: 2013-10-11T13...   16.10.2013, 10:47:06
- - !*!   CytatGoogle zwraca dane w takiej postaci: 2013-10-...   16.10.2013, 10:50:56
- - hind   @nospor: niedawno przechodziłem przez strefy czaso...   16.10.2013, 10:51:47
- - nospor   No dobra, to moze jeszcze jedna sytuacja: Koles z ...   16.10.2013, 11:03:08
- - !*!   @hind a jak Ty w takim formacie wyliczasz ten czas...   16.10.2013, 11:08:24
- - nospor   Cytat@nospor - cron chyba będzie wiedział na jakim...   16.10.2013, 11:15:02
|- - !*!   Cytat(nospor @ 16.10.2013, 12:15:02 )...   16.10.2013, 11:19:08
- - nospor   Byc moze Ogólnie zastnawiam sie czy konwertowani...   16.10.2013, 11:24:40
- - pyro   Cześć, Sorry, jeśli ktoś już wcześniej to napisał...   16.10.2013, 11:27:36
- - rocktech.pl   Hej. Musisz mieć czas Zulu w bazie! Zawsze ...   16.10.2013, 11:28:48
- - nospor   @pyro tak, byla o tym mowa @rocktech ale czy to ...   16.10.2013, 11:35:02
- - !*!   CytatOgólnie zastnawiam sie czy konwertowanie wszy...   16.10.2013, 11:35:37
- - nospor   !*! to chyba sie nie zrozumielismy... Sadz...   16.10.2013, 11:44:30
- - rocktech.pl   CytatW Twoim pomysle zamiast do Europe/Warsaw to k...   16.10.2013, 11:50:30
- - !*!   Emm to był tylko przykład. Strefę możesz zapisać t...   16.10.2013, 11:51:29
- - nospor   CytatZawsze możesz przekonwertować UTC do swojej l...   16.10.2013, 11:58:27
- - !*!   Cytat@!*! czyli wkoncu myslimy o tym samym...   16.10.2013, 12:09:06
- - nospor   CytatPrzy wysyłaniu wiadomości do bazy zapisujesz ...   16.10.2013, 12:25:07
- - !*!   Cały czas mieszasz podejście projektowania dla wia...   16.10.2013, 12:45:20
- - nospor   Dla mnie oba zagadnienia sa podobne. Data to data,...   16.10.2013, 12:51:48
- - !*!   Wiadomości... X wysyła z USA o 10:00 do Y który je...   16.10.2013, 13:07:43
- - nospor   CytatWiadomości... X wysyła z USA o 10:00 do Y któ...   16.10.2013, 13:15:51
- - !*!   CytatSkupmy sie wiec na tym. Czyli w tym przypadku...   16.10.2013, 13:32:52
- - rocktech.pl   Cytat(nospor @ 16.10.2013, 12:58:27 )...   16.10.2013, 13:50:51
- - nospor   CytatBędąc X wysyłasz wiadomość o 10:00 konwertuje...   16.10.2013, 14:13:46
- - !*!   CytatNie, nie czasu serwera, tylko strefy bazowej....   16.10.2013, 14:37:25
- - hind   @!*!: W bazie mam datę w UTC (+0) i dopier...   17.10.2013, 07:28:40
- - nospor   !*! CHyba z lekka przesadzasz. Do operowan...   17.10.2013, 07:34:39
- - !*!   @nospor nadal tego nie ogarniasz, napisz sobie ten...   17.10.2013, 08:14:56
- - nospor   !*! Nie, teraz ty tego nie ogarniasz. Napi...   17.10.2013, 08:18:13
- - emp   Cytat(!*! @ 17.10.2013, 07:14...   17.10.2013, 08:26:34
- - !*!   [PHP] pobierz, plaintext // data spotkania$date = ...   17.10.2013, 08:27:45
- - nospor   @emp dorzuć kisiel... co tak na sucho po mordach b...   17.10.2013, 08:30:28
- - !*!   Nie. Data spotkania to 10 w Denver, 18 czasu Polsk...   17.10.2013, 08:33:07
- - nospor   !*! Koles umowil sie z warszawiakami. Oni ...   17.10.2013, 08:35:15
|- - !*!   Cytat(nospor @ 17.10.2013, 09:35:15 )...   17.10.2013, 08:40:58
- - nospor   !*! Dziekuje ci za wklad w dyskusję, napr...   17.10.2013, 08:45:21
- - !*!   Popieram, tylko podaj jeszcze kod jak możesz w Two...   17.10.2013, 08:46:46
- - nospor   Nie bardzo rozumiem.... Jaki kod? !*! Ost...   17.10.2013, 09:17:52
- - buliq   [PHP] pobierz, plaintext <?php//X jest w Denver...   17.10.2013, 09:41:50
- - !*!   @nospor - i tak właśnie działa mój kod jaki napisa...   17.10.2013, 13:52:09
- - nospor   W warszawie kolesiowi powinna sie pokazywac 18 zas...   17.10.2013, 14:08:45
- - !*!   Dlatego piszę Ci to od początku. Musisz wiedzieć d...   17.10.2013, 14:13:19
- - Ghost_78   Witam Panie i Panów . Wtrace swoje 3 grosze ponie...   17.10.2013, 17:33:39
- - nospor   Raport masz na mysli poprostu zapytanie do bazy i ...   17.10.2013, 18:02:55
- - Ghost_78   Bardzo dobrze zrozumiales . Problem jest z tym, z...   18.10.2013, 07:22:24
- - nospor   set timezone dziala tylko na kolumnach TIMESTAMP. ...   18.10.2013, 07:35:31
- - Ghost_78   Dzieki serdeczne nospor. Wlasnie doczytalem o tym ...   18.10.2013, 07:50:16
- - BartekN   Polecam obejrzeć z tego rocznej Confitury http://w...   18.10.2013, 18:46:35
|- - !*!   Cytat(BartekN @ 18.10.2013, 19:46:35 ...   18.10.2013, 19:19:49
- - Crozin   1. Strefy czasowe i DST są ogromnym... pierdolniki...   18.10.2013, 19:18:39
- - nospor   CytatTeraz się zastanawiam czy biblioteka odpowied...   18.10.2013, 19:59:54
- - !*!   @nospor - i jak, po dzisiejszej zmianie czasu, coś...   27.10.2013, 09:37:57
- - nospor   Nie, wszystko działa Żeby była jasność napiszę j...   27.10.2013, 12:27:59


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 16:31