Date SQL + Prise en compte decalage horaire en PHP
2 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
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) : <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
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) :
<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.
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) : <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
mb
In article <4dec90c3$0$32037$, Caius Pupus wrote:
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
In article <4dec90c3$0$32037$426a74cc@news.free.fr>,
Caius Pupus <caius@pupus.invalid> wrote:
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 ?
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 ?