IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Difference date gmt et visiteur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut Difference date gmt et visiteur
    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

  2. #2
    Membre expérimenté Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Par défaut
    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).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Bonjour,

    J'ai tester un peu,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo "Heure server : ".date("M d Y H:i:s"); 
    echo "Heure gmt : ".gmdate("M d Y H:i:s");
    En février par exemple :
    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

  4. #4
    Membre expérimenté Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Par défaut
    Bonjour,

    Pour récupérer la différence, je proposerais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $serveur = time();
    $gmt = explode(' ', gmdate("m d Y H i s"));
    print_r($gmt); // Pour vérifier
    $gmt =mktime($gmt[5], $gmt[4], $gmt[3], $gmt[0], $gmt[1], $gmt[2]);
     
    $diff = $serveur - $gmt;
    (non testé)

    Mais il y a surement une solution plus simple.
    Au pire : http://fr3.php.net/manual/fr/ref.datetime.php

    Bon courage,
    Paul

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    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

  6. #6
    Membre expérimenté Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Par défaut
    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 ?
    Ca doit surement exister, il faut chercher. Ensuite a toi de te voir pour savoir si tu es en heure d'été ou d'hiver, et appliquer les changements qu'il faut (en prenant en compte le faire que l'utilisateur peut s'inscrire pendant ces 2 periodes !
    Et ensuite afficher le résultat qu'il faut.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion de date GMT en date locale
    Par mayayu dans le forum C
    Réponses: 10
    Dernier message: 17/05/2007, 16h23
  2. Difference dates et questions conception
    Par lolo_bob2 dans le forum Modélisation
    Réponses: 2
    Dernier message: 23/11/2006, 14h23
  3. [SQL][Timestamp] obtenir une date GMT
    Par JeffK dans le forum Oracle
    Réponses: 9
    Dernier message: 20/07/2006, 18h26
  4. PB/calcul de difference date/heures
    Par edhos dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 09h05
  5. []Comment convertir une date GMT en date vb ?
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 11/08/2004, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo