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 :

PHP & TIME


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 95
    Points : 72
    Points
    72
    Par défaut PHP & TIME
    Hello!

    Voilà, j'ai deux dates au format time construite avec un mktime du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $date_un = mktime(12, 30, 00, 01, 26, 09) ;
    $date_deux = mktime(14, 00, 00, 01, 26, 09) ;
    Ca me donnera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date_un = 1232974800 
    $date_deux =1232969580
    Si je fais :
    $date_deux - $date_un

    j'obtiens : 5220
    et :
    echo date('H',5220).'h'.date('i',5220);

    renvoi 2h30 au lieu de 1h30???

  2. #2
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Bonjour,

    La 2nd param de la fonction date() est un timestamp, hors toi tu lui passes une différence de timestamp ce qui ne donne pas un timestamp mais simplement un nombre de secondes.

    Ceci dit je n'en suis pas certaine à 100%.

    > http://fr.php.net/date (fais une recherche sur "function getAge($start_ts)" dans la page, c'est le genre de truc que tu veux faire)

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par Spir Voir le message
    Hello!

    Voilà, j'ai deux dates au format time construite avec un mktime du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $date_un = mktime(12, 30, 00, 01, 26, 09) ;
    $date_deux = mktime(14, 00, 00, 01, 26, 09) ;
    Attention en php un nombre qui commence par 0 est en base octale. Ainsi 09 = 0 puisque 9 ne fait pas parti de l'alphabet octal. Pour t'en convaincre, compare le résultat de ça:
    Ensuite, mktime attendra surement 2009 à la place de 09 à mon humble avis.

    Enfin 1h30 => 60min + 30min => 90min => 60*90 => 5400s et non pas 5220. non ?

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Et pour finalement répondre à ta question initiale, c'est parce que tu as un décalage horaire. utilise gmdate à la place de date.

  5. #5
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $date_un = mktime(12, 30, 00, 01, 26, 09) ;
    $date_deux = mktime(14, 00, 00, 01, 26, 09) ;
    $diff=$date_deux-$date_un;
    Ou $diff est ta différence en seconde, reste à toi de la diviser par 60 pour avoir des minutes et encore par 60 pour avoir des heures ... simple non

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 95
    Points : 72
    Points
    72
    Par défaut
    J'ai utilisé la fonction DiffenrenceEntreDate prise là :
    http://www.wikistuce.info/doku.php/p..._sur_les_dates

    Ca marche.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 95
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par Maxoo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $date_un = mktime(12, 30, 00, 01, 26, 09) ;
    $date_deux = mktime(14, 00, 00, 01, 26, 09) ;
    $diff=$date_deux-$date_un;
    Ou $diff est ta différence en seconde, reste à toi de la diviser par 60 pour avoir des minutes et encore par 60 pour avoir des heures ... simple non
    ok chef!

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

Discussions similaires

  1. [Dates] Time Out PHP
    Par teryen dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2008, 17h08
  2. [PHP-JS] problème avec time()
    Par maxtt dans le forum Langage
    Réponses: 14
    Dernier message: 31/07/2006, 04h12

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