Question

J'ai une application qui stocke les données de temps GMT dans une base de base de données MySQL comme ceci: 2009-12-16 15:27:47.

Le décalage du fuseau horaire de l'utilisateur est stocké dans une autre colonne comme ceci: -6

Le fuseau horaire ci-dessus est GMT-6, qui est CST. Existe-t-il un moyen de faire écho à CST (c.-à-d. Date ('t ")) à partir des données de décalage GMT?

Remarque: Je dois également ajouter que l'application Global Lezone est définie en utilisant: Date_default_timeZone_set ('GMT');

Était-ce utile?

La solution

Malheureusement, il n'y a pas toujours un seul fuseau horaire pour chaque décalage GMT. De nombreux décalages GMT ont plusieurs fuseaux horaires. De plus, les compensations GMT changent pendant DST (le cas échéant). Par exemple, pendant DST, les États-Unis / Arizona et les États-Unis / Mountain partagent le même compensation GMT; Cependant, pendant le reste de l'année, US/Mountain et US/Arizona Ne partagez pas le même décalage GMT. Vous pouvez soit utiliser DateTimeZone::listIdentifiers() ou Découvrez le manuel Pour une liste de fuseaux horaires pris en charge en PHP.

Si vous commençiez une application à partir de zéro, je vous suggère de stocker l'identifiant du fuseau horaire au lieu du décalage GMT, mais je suppose que votre application est déjà en production. Dans ce cas, il n'y a pas vraiment de moyen fiable d'afficher le fuseau horaire sans améliorer vos données.

Je dirais que vous ajoutez un timezone colonne à la table. Vous pouvez écrire un script unique qui définirait le timezone à une liste de valeurs par défaut prédéfinies en fonction du décalage GMT. Par exemple, si le décalage GMT est 8, définissez le timezone à America/Los_Angeles. Enfin, modifiez votre application pour afficher / enregistrer les identificateurs de fuseau horaire au lieu de compensations GMT. Cela peut entraîner des problèmes pour un sous-ensemble de vos utilisateurs, mais cela leur permet de modifier leur fuseau horaire s'ils en ont besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top