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 :

Calcul différence entre deux heures


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
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Par défaut Calcul différence entre deux heures
    Bonjour,

    J'extrais des données d'une table dans laquelle se trouve une heure de début et une heure de fin au format TIME.

    J'aimerais faire une différence entre les deux heures qui s'affiche sous la forme (1h50, 1h75 etc...). Je pensais faire le traitement directement dans ma requête avec un count mais sans succès...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(t_planning.heure_debut - t.planning.heure_fin) as diff etc...
    Sinon j'ai une fonction qui peut faire la différence mais je ne vois pas comment afficher ma différence sous la forme (1h75 au lieu de 1h45)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function difheure($heuredeb,$heurefin)
    {
       $hd=explode(":",$heuredeb);
       $hf=explode(":",$heurefin);
       $hd[0]=(int)($hd[0]);$hd[1]=(int)($hd[1]);$hd[2]=(int)($hd[2]);
       $hf[0]=(int)($hf[0]);$hf[1]=(int)($hf[1]);$hf[2]=(int)($hf[2]);
       if($hf[2]<$hd[2]){$hf[1]=$hf[1]-1;$hf[2]=$hf[2]+60;}
       if($hf[1]<$hd[1]){$hf[0]=$hf[0]-1;$hf[1]=$hf[1]+60;}
       if($hf[0]<$hd[0]){$hf[0]=$hf[0]+24;}
       return (($hf[0]-$hd[0]).":".($hf[1]-$hd[1]).":".($hf[2]-$hd[2]));
    }
    Si vous avez une idée, ça serait avec grand plaisir ! Merci

  2. #2
    Membre Expert 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
    Par défaut
    Bonjour, as tu regardé la doc officielle MySQL et notamment datediff ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Par défaut
    Merci pour ta réponse. Il y a effectivemnt TIMEDIFF qui correspond à ce que je veux mais l'affichage ne me convient pas...

    J'ai vraiment besoin que la différence d'heure s'affiche sous la forme 1,75 etc...

  4. #4
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function difheure($heuredeb,$heurefin)
    {
       $hd=explode(":",$heuredeb);
       $hf=explode(":",$heurefin);
       $ts_hd = mktime($hd[0],$hd[1],$hd[2]);
       $ts_hf  = mktime($hf[0],$hf[1],$hf[2]);
       $diff = $ts_hf - $ts_hd;
       $float =  $diff / 3600;
       return $float;
    }
    Je fais une conversion des dates en timestamp, je fait la différences et je divise par 3600 ( 3600sec = 1heure).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Par défaut
    Effectivement la convertion en timestamp pourrait réssoudre mon problème, je n'y avais pas pensé ! Merci ;-)

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

Discussions similaires

  1. calcul différence entre deux heures dans une requete
    Par cornet04 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/03/2015, 17h37
  2. calculer la différence entre deux heures
    Par jenniferIUP dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 13/07/2012, 15h55
  3. problème différence entre deux heures
    Par gwenhael dans le forum Langage
    Réponses: 2
    Dernier message: 14/09/2006, 16h16
  4. Réponses: 7
    Dernier message: 05/07/2006, 17h29
  5. [Dates] Calcul d'une différence entre deux heures
    Par loreleï85 dans le forum Langage
    Réponses: 12
    Dernier message: 28/06/2006, 12h43

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