Se puede simplificar aún más. Ya que está usando JavaScript, ¿por qué no usar JavaScript para ajustar la zona horaria en el cliente también?
- Almacenar todas las horas en el servidor como UTC
- Servirlos al cliente como UTC
- El cliente usa JavaScript para ajustar la hora a la zona horaria local
Esto no solo simplifica las cosas, sino que también soluciona un problema con su modelo. Si registré mi cuenta en Nueva York pero viajo a Australia, quiero ver los horarios según la zona horaria australiana. De hecho, el uso de JavaScript que utiliza puede ajustar fácilmente la configuración, lo que hace que el diseño sea aún más dinámico. En segundo lugar, puede evitar la sobrecarga de almacenar la zona horaria del usuario.
Dicho esto, si desea que su diseño se degrade a los navegadores que no utilizan JavaScript, es mejor que adopte un enfoque completo del lado del servidor que se base en las cookies HTTP (en lugar de confiar en JS para obtener las cookies).