Można to jeszcze uprościć. Skoro używasz JavaScript, dlaczego nie użyć JavaScript do dostosowania strefy czasowej również na kliencie?
- Przechowuj wszystkie czasy na serwerze jako UTC
- Podawaj je klientowi jako UTC
- Klient używa JavaScript, aby dostosować czas do lokalnej strefy czasowej
To nie tylko upraszcza sprawę, ale także rozwiązuje problem z Twoim modelem. Jeśli zarejestrowałem swoje konto w Nowym Jorku, ale podróżuję do Australii, chcę zobaczyć godziny zgodnie z australijską strefą czasową. W rzeczywistości, używając JavaScript, którego używasz, możesz łatwo dostosować ustawienia, czyniąc projekt jeszcze bardziej dynamicznym. Po drugie, możesz uniknąć narzutu związanego z przechowywaniem strefy czasowej użytkownika.
To powiedziawszy, jeśli chcesz, aby Twój projekt uległ degradacji do przeglądarek nieobsługujących JavaScript, lepiej jest przyjąć podejście oparte na pełnym serwerze, polegające na plikach cookie HTTP (w przeciwieństwie do polegania na JS do pobierania plików cookie).