2010-03-24 8 views
7

Je crée un script qui permet à l'utilisateur de choisir leur propre fuseau horaire ...Zones temps pour différents utilisateurs

Si je dois faire ce travail, comment puis-je stocker des dates dans la base de données afin que chaque fuseau horaire sera le lire, et montrer la bonne date dans leur fuseau horaire? Est-ce que je stocke la date en tant que GMT, puis lorsqu'un utilisateur avec le fuseau horaire GMT +10 sélectionné affiche l'élément dans mon script, je montre cette date en heure GMT +10?

Y a-t-il une meilleure façon de procéder?

exemples serait génial :)

Répondre

4

Stockage des fuseaux horaires dans UTC dans la base de données est certainement le chemin à parcourir.

1

UTC est comment vous le faites

Obtenir une date de leur navigateur (utiliser Javascript et afficher les navigateurs datent du serveur) pour travailler ce fuseau horaire, ils sont et le définir comme un défaut

1

Dans MYSQL, les champs d'horodatage sont toujours enregistrés en interne dans UTC, mais les requêtes renverront des chaînes formatées en fonction du fuseau horaire de votre serveur de base de données. Votre serveur db devrait donc être défini sur UTC pour simplifier les choses. Passez ce truc directement dans un objet DateTime, puis vous pouvez utiliser sa fonction setTimezone() pour le faire fonctionner dans le fuseau horaire que vous voulez.

Vous pouvez également utiliser date_default_timezone_set() pour définir un fuseau horaire en php, qui sera utilisé pour le reste de votre script.

+1

Oh, et "UTC" est le nouveau "GMT", juste pour plus de clarté. – keithjgrant

Questions connexes