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 :

heure machine


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Points : 38
    Points
    38
    Par défaut heure machine
    Bonjour,

    J'ai un problème avec la fonction date() en PHP.


    Je travaille sur un serveur situé aux USA et je désire retourner l'heure machine.
    (Exemple il est 18h05 en France mais 9h05 coté ouest des USA.
    La fonction date() retournant l'heure du serveur j'ai pas mal cherché pour pouvoir faire en sorte que scripts PHP utilisent non pas l'heure du serveur mais l heure machine mais sans succès.

    Si quelqu'un a une idée de par exemple comment on peut récupérer la timezone de la machine (Europe/Paris dans mon cas) et non pas la timezone du serveur.


    Merci d'avance

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    date_default_timezone_set('America/Los_Angeles');
    echo date('G\hi\ms');

    Liste des zones supportées ici

    EDIT: ok j'ai mal compris ton problème désolé

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'heure du client n'est pas connue de PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    comment on peut récupéré la timezone de la machine (Europe/Paris dans mon cas) et non pas la timezne du serveur.
    A part avoir recourt à la géolocalisation qui se fera par l'IP, je ne vois pas d'autre solution, car à ma connaissance il y a rien coté client (navigateur en général).

    Je trouve ça un peu dommage qu'il y ait rien dans l'entête à ce niveau d'ailleurs.

    Quoi qu'il peut être possible de faire quelque chose en JS avec les dates, mais tu n'auras pas l'info de suite, dès la 1ère arrivée.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  5. #5
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Et en placant la ligne...
    dans le .htaccess ?

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par Eric2a
    Et en placant la ligne...
    dans le .htaccess ?
    Ce n'est pas l'heure de la machine justement, c'est une zone qu'on fixe d'office coté serveur.
    C'est partir du principe que tous les internautes seraient en France.
    Ou alors faire croire que le serveur (ou le site) serait situé en France.

    Mais moi qui suis à la Réunion par exemple, ça ne correspondra pas à l'heure de ma machine (2 heures de décalage par rapport à Paris).
    Enfin, si j'ai bien compris la question.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Points : 38
    Points
    38
    Par défaut
    Ouaip tu as très bien compris la question .

    Avec JS ca marche on peut récupérer l'heure machine mais inutilisable dans un script PHP.

    j'avais trouvé une solution avec date('Z') mais ca me renvoyait l'heure UTC (donc pas la bonne différence d'heure en ce qui concerne mon cas (-9h de décalage devient -7 donc ce n'est pas bon).

    Je suis en train d’explorer la voie de la géolocalisation avec l'IP (j'avais déjà utilisé ce procédé pour localiser un utilisateur mais ce n'est pas assez précis en ce qui concerne les villes mais avec les pays je pense qu'il n'y a pas de souci.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par NicoO_O Voir le message
    avec JS ca marche on peut récupérer l'heure mahcine mais inutilisable dans un script php.

    Comme l'a sous-entendu RunCodePhp tu peux la récupérer en JS après être passé par une page intermédiaire ou un reload de la page. Bon c'est pas très élégant mais ça peut parfois dépanner...

  9. #9
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    avec JS ca marche on peut récupérer l'heure mahcine mais inutilisable dans un script php.
    Si, mais le problème est le même que celui de la création d'un cookie.
    En gros, si on prend les chose depuis le début :
    - l'internaute demande une page sur le site Web (lance une requête HTTP)
    - Le serveur reçois la demande, et la traite. A ce stade, pas moyen de récupérer l'heure (sinon l'autre technique qu'est la géolocalisation par IP).
    On peu rajouter/générer un code JS du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var utc = new Date();
    var decalage = utc.getTimezoneOffset();
    getTimezoneOffset() retourne le nombre de minutes de décalage (négatif ou positif selon où la personne se situe).
    Puis pourquoi pas le stocker dans un cookie (toujours en JS).
    Ou alors on fait en sorte de rajouter l'info en paramètres dans une URL (un lien).
    - Ce ne sera que lorsque que l'internaute demandera une nouvelle page (ou recharge la même, peu importe) que le cookie (ou paramètre) sera présent dans la requête HTTP.
    - Le serveur reçois la nouvelle demande, une simple vérif sur la présence du cookie ($_COOKIE) permettra de récupérer sa valeur, soit le nombre de minutes de décalage.
    Ou en GET si ça été rajouté en paramètre dans un lien.


    C'est loin d'être fiable, car on obtient l'info après la 1ère demande, puis si on le stock dans un cookie, faut que le client accepte les cookies, puis on aura aucune certitude que l'heure de la machine soit correcte.

    [CODE]j'avais trouvé une solution avec date('Z') mais ca me renvoyait l'heure UTC (donc pas la bonne différence d'heure en ce qui concerne mon cas (-9h de décalage devient -7 donc ce n'ets pas bon).[/QUOTE]La fonction date() de Php c'est coté serveur, il est impossible d'obtenir l'heure de la machine cliente uniquement avec ça.

    A mon sens il n'y a pas d'autres moyen que de se baser sur une info venant du poste client.
    Donc soit faire du Javascript avec l'Objet Date, soit avec l'IP et tenter de le géolocaliser.
    Avec l'IP, il y aura moyen d'avoir l'info dès la 1ère demande, mais là aussi ça peu ne pas être fiable, ça dépendra de l'outil utiliser, car les IPs, c'est un peu l'inconnue.
    Il y a ce site qui apparemment proposerait ce service gratuitement : http://www.wipmania.com/
    Voir peut être du coté de Google/Yahoo aussi.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/07/2014, 22h58
  2. Réponses: 11
    Dernier message: 24/07/2007, 15h14
  3. Script VBS (heure machine + x minutes) popup ?
    Par dauphin34000 dans le forum VBScript
    Réponses: 2
    Dernier message: 04/07/2007, 18h52
  4. [Dates] recuperer l'heure local de la machine client
    Par ggjedi dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2006, 13h10
  5. Modifier l'heure et la date d'une machine sur le réseau -VB6
    Par GEGER dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/11/2005, 19h41

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