2010-02-12 2 views
5

Je sais que cela peut sembler une question stupide, mais je n'ai pas trouvé dans la documentation de PHP quelque part où ils ont déclaré haut et fort celui-ci.PHP ini date.timezone? Fuseau horaire du serveur ou du client?

J'ai une application web.

Les utilisateurs de mes web sont appliations en Europe, mais le serveur exécutant le appliation Web est en US.

Comment devrais-je définir la directive date.timezone php ini ???

Je suppose que l'endroit où se trouve le serveur donc s'il est à New York: date.timezone = « Amérique/New_York »

Mais suis-je raison?

+2

Pas une question stupide, mais a été posée: http://stackoverflow.com/questions/1852223/mysql-keep-server-timezone-or-user-timezone http://stackoverflow.com/questions/1981387/qui-est-le-meilleur-fuseau horaire-paramètres-pour-php-mysql-site http://stackoverflow.com/questions/346770/dealing-with-timezones-in-php –

+0

Réglage du fuseau horaire à New York tout simplement parce que le serveur est là (sorta) comme si je gardais une montre à l'heure de Shanghai juste parce que c'était fait là-bas. – GZipp

+0

@Pekka, merci! Après avoir lu le dernier que vous avez suggéré: http://stackoverflow.com/questions/346770/dealing-with-timezones-in-php J'ai sous-entendu quelque chose. Je pensais que date.timezone pourrait casser l'application ou quelque chose entre PHP et MySQL s'il n'est pas correctement défini. Mais j'ai finalement compris qu'il peut être réglé sur ce que je veux. Donc, je pense à suivre la suggestion donnée dans le dernier lien, j'ai mis le time.zone à GMT 0 et quand besoin d'afficher les dates/heures, j'utilise script côté client pour convertir les dates/heures. –

Répondre

2

d'après ce que je lis ici autour des réponses est SO:

  1. set PHP date.timezone dire ctive à "UTC" (c.-à-d. 0)
  2. permettent d'imprimer PHP dans les pages de la date et heure (UTC) comme un simple horodatage Unix (nombre)
  3. laisser Javacscript transformer l'horodatage Unix UTC dans le temps du client en faisant simplement:

    nouvelle date (<? php echo DATE_TIME_SERVER_UTC;? > * 1000);

2

Je pense qu'il vaut mieux vous pouvez définir fuseau horaire Europe/STH ou calculer pour chaque client à l'aide GeoIP ou JavaScript (il devrait être possible) pour définir fuseau horaire local du serveur ou UTC et le changement fuseau horaire utilisateur dans le script en utilisant http://pl.php.net/manual/en/function.date-default-timezone-set.php