|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonjour,
Voila, je conçoit un calendrier d'activités online sur un site web. Les internautes peuvent s'inscrirent aux activités. Comme la date et l'heure de début des activités est différentes selon l'heure du visiteur, j'aimerais stocker la date/Heure dans la base de donnée selon le format GMT. Normalement, si je suis au Québec, j'ajoute une nouvelle activité ayant l'heure et la date de début à l'heure du Québec. Pour un utilisateur voyant cette activité qui habite en Roumanie, j'aimerais que l'heure de début qui s'affiche, soit l'heure pour la Roumanie. donc quel vous semble la solution la meilleure ? alors, il faudrait que je récupère la date et l'heure lors de l'enregistrement de l'activité, et que je compare celle-ci avec l'heure GMT. existe-t'il un moyen d'obtenir une différence de date entre le visiteur et l'heure gmt toujours précise ? Exemble : pour 22:10:04 UTC au québec j'ai 18:10:04, cependant avec le changement d'heure, ça change souvent, etc... vos suggestions ? Merci |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() |
A prioris en php directement, on ne peut pas récupérer le format de date du client (gmt, gmt+2...).
La solution serait donc de mettre un champ de type hidden lors de son inscription (ou un truc en ajax, qui stoque en session), qui met a jour l'heure toutes les secondes. Ensuite lorsqu'il a envoyé le formulaire tu compares. Apres pour l'affichage, tu peux soit utiliser setlocale, soit appliquer les +1, +2 ... a l'heure pour que ca corresponde au client. Sinon tu demandes tout simplement le gmt tu client (comme sur les forums). |
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() |
Bonjour,
J'ai tester un peu, Code :
Heure server : Feb 29 2008 06:01:22 Heure gmt : Feb 29 2008 11:01:22 donc différence de 5 heures. En septembre : Heure server : Sep 29 2008 06:00:47 Heure gmt : Sep 29 2008 10:00:47 donc différence de 4 heures. donc la différence change, je peux pas me servir uniquement de l'heure du server pour comparer avec celle gmt et de même pour l'heure client avec heure gmt. Je préférais demander l'heure du client lors de son inscription dans un formulaire car en javascript s'il n'est pas activé par le navigateur, ça ne donnera rien. sachant qu'il y a des pays ou l'on avance ou recule l'heure, ça pourrait aider. Quelles s'ont les variables qui font changé la différence entre l'heure locale et l'heure gmt ? et s'il existe un moyen de les récupérés |
||
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() |
Bonjour,
Pour récupérer la différence, je proposerais ca : Code :
Mais il y a surement une solution plus simple. Au pire : http://fr3.php.net/manual/fr/ref.datetime.php Bon courage, Paul |
||
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
Bonjour,
Cela étant dit, 1) je demande l'heure du visiteur (5h00) et l'heure du début de l'activité (12h00) dans le formulaire d'ajout. 2) Je compare l'a différence entre l'heure visiteur (5h00) et l'heure GMT (8h00). 3) Je prend la différence (3h00) et j'ajoute (12h00+3h00 =15h00) au début de l'activité. 4) Sauvegarde le début de l'activité (15h00). Donc l'activité s'affichera avec 15h00 en heure de début en mode GMT. l'utilisateur revient 6 mois plus tard, il faut lui redemander son heure pour reprendre l'exemple mais a l'inverse. Car la différence d'heure a changer (heure d'été, d'hiver, etc..). J'aurais aimer un moyen pour afficher les activités selon l'heure du visiteur et pas avoir à lui redemander chaque fois qu'il consulte la page des activités. Biensur, un petit javascript pour récupérer l'heure locale machine est possible, parfois l'heure machine n'est pas exacte... Donc solution la plus efficace je crois c'est de redemander a chaque consultation des activités, de prendre la différence entre son heure et l'heure gmt, et de remettre l'heure local calculer avec la différence , dans le formulaire à la consultation des activités comme valeur par défaut du champ, ça évitera que l'utilisateur le spécifie tout le temps. et de sauvegarder la différence dans une base pour être réutiliser pour les valeurs par défaut. Pour faire en sorte que l'utilisateur vérifie que l'heure affiché est bien la sienne lors des changements (heure été, hiver), je pensais faire affiché un message lorsque la date du serveur approche les dates de changement d'heures. Mais qui détermine la date et l'heure du changement de date ? il faut vérifier soit même ou c'est possible de savoir avec des fonctions php ? merci |
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() |
Citation:
Et ensuite afficher le résultat qu'il faut. |
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
Bonjour,
Lorsque l'utilisateur s'inscrit, tu lui demandes de sélectionner le fuseau horaire dont il dépend, que tu enregistre dans la table 'utilisateur', au format 'AAAA-MM-JJ HH:MM:SS'. La fonction ci-dessous génère un élément 'select' contenant la liste des fuseaux horaires : Code :
Lorsqu'il va s'identifier de nouveau, tu va pouvoir récupérer le fuseau horaire préalablement enregistré. A partir de ce fuseau, tu peux obtenir le décalage horaire à appliquer sur l'heure des activités : Code :
Tu trouveras plus de renseignements ici : http://julien-pauli.developpez.com/tutoriels/php/dates/ |
||||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
J'ai oublié de préciser que les heures d'été et d'hiver sont prises en compte par ces fonctions.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com