Date SQL + Prise en compte decalage horaire en PHP

Le
Caius Pupus
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #23431211
Bonjour,

Le 07/06/2011 08:27, Caius Pupus a écrit :

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.

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) :

En voici d'autres :

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
mb
Le #23431231
In article 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
Publicité
Poster une réponse
Anonyme