Discussion:
Date SQL + Prise en compte decalage horaire en PHP
(trop ancien pour répondre)
Caius Pupus
2011-06-07 06:27:33 UTC
Permalink
Bonjour !

Alors voilà, j'ai un p'tit site qui stocke en BDD la date de dernière
connexion des membres inscrits. Cela permet de leur afficher par exemple
: "Votre dernière connexion : 05/06/2011 à 08h24".

Le problème, c'est que certaines des personnes inscrites sur mon site
vivent à l'étranger, et l'heure de dernière connexion est décalée (en
effet, ils voient la date stockée en base, donc celle correspondant à
l'heure française).

Existe-t-il un moyen rapide pour leur afficher la date et heure
correspondante à leur pays ?

Je sais qu'il y ala fonction date_default_timezone_set(), mais celle-ci
est utile seulement si j'appelle la fonction date() (entre autre), ce
qui n'est pas le cas dans mon exemple.

Merci pour votre aide !

CP
mb
2011-06-07 08:15:46 UTC
Permalink
Post by Caius Pupus
j'ai un p'tit site qui stocke en BDD la date de dernière
connexion des membres inscrits. Cela permet de leur afficher par exemple
: "Votre dernière connexion : 05/06/2011 à 08h24".
Le problème, c'est que certaines des personnes inscrites sur mon site
vivent à l'étranger
Bonjour ,

peut-être eût-il mieux valu enregistrer le timestamp et
faire les transformations à l'écriture ?
--
mb
Olivier Miakinen
2011-06-07 08:15:46 UTC
Permalink
Bonjour,
Post by Caius Pupus
Alors voilà, j'ai un p'tit site qui stocke en BDD la date de dernière
connexion des membres inscrits. Cela permet de leur afficher par exemple
: "Votre dernière connexion : 05/06/2011 à 08h24".
Le problème, c'est que certaines des personnes inscrites sur mon site
vivent à l'étranger, et l'heure de dernière connexion est décalée (en
effet, ils voient la date stockée en base, donc celle correspondant à
l'heure française).
Existe-t-il un moyen rapide pour leur afficher la date et heure
correspondante à leur pays ?
Pour que ce soit possible en PHP seul, tu vas devoir stocker pour chaque
membre son TIMEZONE préféré, après le lui avoir fait saisir. Il faut
aussi qu'ils puissent le changer, en particulier s'ils n'ont pas su ou
pas pu saisir l'information de passage à l'heure d'été.

Ce sera alors à toi de faire la conversion à chaque fois. L'idéal dans
ce cas serait d'ailleurs de stocker les dates en UTC (temps universel
coordonné), et de faire la conversion aussi pour ceux qui habitent en
France métropolitaine.
Post by Caius Pupus
Je sais qu'il y ala fonction date_default_timezone_set(), mais celle-ci
est utile seulement si j'appelle la fonction date() (entre autre), ce
qui n'est pas le cas dans mon exemple.
Rien ne t'empêche d'appeler la fonction date() en combinaison avec
mktime(), mais je ne sais pas si c'est la meilleure méthode.

À tout hasard, je viens de trouver ceci (en anglais) :
<http://www.ultramegatech.com/blog/2009/04/working-with-time-zones-in-php/>

En voici d'autres :
<http://www.google.fr/search?q=conversion+de+timezone+en+php>

P.-S. : si demander à l'utilisateur de choisir son TIMEZONE ne te semble
pas une bonne solution, mais que tu acceptes d'avoir du JavaScript sur
ton site, tu peux envoyer la date en UTC et faire la conversion d'UTC
vers l'heure locale en JavaScript.

Cordialement,
--
Olivier Miakinen
Continuer la lecture sur narkive:
Loading...