Różne strefy czasowe użytkowników aplikacji

0

Witam

Mam takowe pytanie. Tworzę sobie pewną aplikację w PHP, w której dość istotną rolę odgrywa poprawnie zapisana data i czas. W obecnej chwili aplikacja będzie działała tylko w Polsce, myśląc przyszłościowo chciałbym ją rozwinąć, tak aby działała w innych krajach. I tutaj pojawia się mój problem gdyż inne kraje mogą mieć inne strefy czasowe. Jak poradzić sobie z tym problemem? Zapisywać w bazie danych czas w jednej ze stref i w przypadku gdy użytkownik ma inną to za każdym razem dodawać/odejmować godziny? Obecnie korzystam z MySQLa, ale nie wykluczam przejścia na PostgreSQL, a tam chyba jest to jeszcze jakoś specjalnie rozwinięte różnymi typami kolumn, tak przynajmniej gdzieś czytałem. Podpowiedzcie jak to rozegrać.

Drugie pytanie to jak najlepiej odczytać aktualną strefe czasową od użytkownika? Jest jakiś prosty sposób? Może po prostu go o to zapytać? Może odczytać czas z jego komputera przez JS? Może na podstawie IP ustalić lokalizacje i dobrać strefę (chociaż nie wiem czy to byłoby jakkolwiek dokładne). Jak to powinno być profesjonalnie zrobione?

Pozdrawiam

0

Strefę czasową możesz zgadywać wg geolokalizacji IP (to wydłuży czas pierwszego ładowania strony) albo pobrać z JS (Google get timezone js) i przesłać w tle ajaxem i zapisać w sesji. Możesz też wypluwać daty w domyślnej strefie czasowej, zapisując unix timestamp np. w atrybucie data-* (bo po prostu wykorzystać element <time> i jego atrybut datetime) i javascriptem aktualizować je do właściwej dla danej strefy wartości (choć może to powodować efekt przeskoczenia wartości).

0

Hmm myślę, że przechowywanie w atrybucie i aktualizowanie przez JS może słabo wyglądać, chyba od razu z PHP zwrócę odpowiednią godzinę. A jak to przechowywać w bazie? W jednej ze stref i przy każdym wyświetleniu odpowiedni dodać/odjąć? Czy są na to jakieś inne lepsze sposoby?

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