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 :

Comment faire un cumul d'heures


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Comment faire un cumul d'heures
    Bonjour,

    Je cherche à cumuler des heures pour faire un total d'heures.

    J'ai 3H35 + 4H00 + 2H25 + 1H55

    Dois-je en passer par timestamp ?

    Merci d'avance
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  2. #2
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Pardon, j'ai oublié de mettre ce que j'avais fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nbrHeures=strtotime($horaire["heure_matin"])+strtotime($horaire["heure_apres_midi"]);
    	$horaire["total_heures"]=strftime("%H:%M",$nbrHeures);
    Mais par exemple avec 3H45 + 2H30 le total = 21H56

    C'est tout de même beaucoup
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  3. #3
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    Pourquoi tu ne passes pas par mktime ?
    Comme ça tu fais des sommes d'entiers.

  4. #4
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Ah ben oui, pas pensé...

    Cela donne quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $h_matin = explode(":", $horaire["heure_matin"]);
    	$heure_matin = mktime($h_matin[0],$h_matin[1], 0, 0, 0, 0);
    	$h_apres_midi = explode(":", $horaire["heure_apres_midi"]);
    	$heure_apres_midi = mktime($h_apres_midi[0],$h_apres_midi[1], 0, 0, 0, 0);
    	$nbrHeures=$heure_matin+$heure_apres_midi;
     
     
    	$nbrHeures=$nbrHeures+3600;//Ajout d'une heure
    	$nbrHeures=strftime("%H:%M",$nbrHeures);
    Et le résultat est bon

    Merci de m'y avoir fait penser.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  5. #5
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Non!!! damned !!!

    Si je dépasse 24 heures, il me le retire, j'ai dû oublier quelque chose.

    J'ai 20H00 + 6H45 = 2H45.

    C'est dommage, c'est balo qu'en même.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  6. #6
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    J'ai une autre solution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $heure1 = 20;
    $minute1 = 23;
     
    $heure2 = 6;
    $minute2 = 47;
     
    $heure3 = intval(($minute1 + $minute2) / 60 );
    $minute3 = $minute1 + $minute2 - ($heure3 * 60);
     
    echo ($heure1 + $heure2 + $heure3) , ':', $minute3;
    Ce qui donne, dans mon exemple "27:10".

  7. #7
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Je mets la soluce qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function cumulHeures($heure1,$heure2) {  $time1=explode(":",$heure1); $time2=explode(":",$heure2); $heure=0; $minute=0; if(empty($time1[1]) && !empty($time2[1])){$heure=intval(($time2[1])/60);$minute = $time2[1] - ($heure * 60);}  if(!empty($time1[1]) && empty($time2[1])){$heure=intval(($time1[1])/60);$minute = $time1[1] - ($heure * 60);}  if(!empty($time1[1]) && !empty($time2[1])){$heure = intval(($time1[1] + $time2[1]) / 60 );$minute = $time1[1] + $time2[1] - ($heure * 60);}  return ($time1[0] + $time2[0] + $heure).":".$minute; }
    Merci encore
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

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

Discussions similaires

  1. Requete SQL : comment faire un cumul
    Par yannick069 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/04/2015, 13h21
  2. [XL-2007] Impossible de faire un cumul d'heure
    Par rch05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/07/2011, 22h00
  3. comment faire un cumul progressif par mois en sql
    Par cana13 dans le forum Développement
    Réponses: 13
    Dernier message: 03/02/2011, 09h39
  4. [AC-2000] Comment faire la somme des heures en requete pour un état ?
    Par angelevil dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 08/09/2009, 02h19
  5. Comment faire somme de l'heure ?
    Par momoG dans le forum VBA Access
    Réponses: 1
    Dernier message: 08/09/2007, 07h11

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