Cela peut être simplifié encore. Puisque vous utilisez JavaScript, pourquoi ne pas utiliser JavaScript pour ajuster également le fuseau horaire sur le client ?
- Stocker toutes les heures sur le serveur au format UTC
- Les transmettre au client en UTC
- Le client utilise JavaScript pour ajuster l'heure au fuseau horaire local
Non seulement cela simplifie les choses, mais cela résout également un problème avec votre modèle. Si j'ai enregistré mon compte à New York mais que je voyage en Australie, je veux voir les heures selon le fuseau horaire australien. En fait, l'utilisation de JavaScript que vous utilisez peut facilement ajuster les paramètres, rendant la conception encore plus dynamique. Deuxièmement, vous pouvez éviter la surcharge liée au stockage du fuseau horaire de l'utilisateur.
Cela dit, si vous souhaitez que votre conception se dégrade vers les navigateurs non-JavaScript, il vaut mieux adopter une approche côté serveur complète en s'appuyant sur les cookies HTTP (au lieu de s'appuyer sur JS pour récupérer les cookies).