Може да се направи още по-просто. Тъй като използвате JavaScript, тогава защо не използвате JavaScript, за да коригирате часовата зона и на клиента?
- Съхранявайте всички времена на сървъра като UTC
- Обслужвайте ги на клиента като UTC
- Клиентът използва JavaScript за коригиране на времето към местната часова зона
Това не само опростява нещата, но и преодолява проблем с вашия модел. Ако съм регистрирал акаунта си в Ню Йорк, но пътувам до Австралия, искам да видя часовете според австралийската часова зона. Всъщност с помощта на JavaScript, който използвате, можете лесно да коригирате настройките, което прави дизайна още по-динамичен. Второ, можете да избегнете излишните разходи за съхраняване на часовата зона на потребителя.
Въпреки това, ако искате вашият дизайн да се влоши до браузъри, които не са JavaScript, тогава е по-добре да използвате пълен подход от страна на сървъра, като разчитате на HTTP бисквитки (за разлика от разчитането на JS за извличане на бисквитки).