Bonjour à tous,
J'ai un petit soucis qui ne me semble pas sorcier mais je ne sais pas trop comment m'y prendre correctement.
J'ai créer une messagerie sur laquelle la date et l'heure d'envoi des messages s'inscrit.
Lorsque j'insère un message en BDD j'utilise(L'heure stockée est donc l'heure du serveur sur lequel est hébergé mon site (en France), je ne me trompe pas ?).
Code : Sélectionner tout - Visualiser dans une fenêtre à part now()
Je la stocke en BDD dans un datetime de la forme :Le problème intervient lorsque je récupère la date en PHP. En effet mon code marche pour la France mais un Américain par exemple verra l'heure française d'envoi du message... Auriez-vous donc une idée de la façon dont je pourrais adapter le code ci-dessous pour que mes visiteurs voient l'heure dans le fuseau horaire de leur pays ?2011-01-18 18:06:12
J'ai l'impression qu'il faut regarder du coté de l'attribut Z de date ou de date-default-timezone-set mais je ne sais pas trop comment bien m'y prendre.
Merci d'avance pour votre aide !
Mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 $datetime = Retour de ma requete SQL (retourne le datetime) $jour = substr($datetime, 8, 2); $mois = substr($datetime, 5, 2); $annee = substr($datetime, 0, 4); $heure = substr($datetime, 11, 2); $minute = substr($datetime, 14, 2); $seconde = substr($datetime, 17, 2); if ((date ('d')==$jour) && (date ('m')==$mois) && (date ('Y')==$annee)) { if (LANGUE_INTERFACE == "en") { if ((int)$heure == 0) return "12:".$minute." "."am"; if ((int)$heure == 12) return "12:".$minute." "."pm"; else return ($heure%12).":".$minute." ".(($heure<12)?"am":"pm"); } else return $heure.":".$minute; }
Partager