Manipulation des variables de type date en ph

info_Louka Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -  
Bertrand40 Messages postés 1344 Statut Membre -
Bonjour,

j'aimerais savoir comment utiliser la boucle for en php afin de parcourir a partir d'une date debut a une date fin
pour mieu comprendre voici le code

for($i=$date_debut;$i<=$date_fin;$i=$i+1){
$nb_heureT+=$t->calcul_heure_presence($matricule,$i);

//je veu calculer le nombre d'heure de présence d'un personnel entre date_debut et date_fin en appelant a chaque date se situant entre date_debut et date_fin la methode calcul_heure_presence qui retourne le nombre d'heure pour une date donnée

}
echo $nb_heureT;

merci de m'aider

3 réponses

  1. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Bonjour,

    Tes dates sont sous quelle forme ?
    0
  2. info_Louka Messages postés 64 Date d'inscription   Statut Membre Dernière intervention  
     
    mes dates sont sous la forme suivant:
    'aaaa-mm-jj'
    0
  3. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Je t'ai fait ça. C'est à adapter et améliorer. Dans l'exemple je prends 2 dates avec 1 jour de différence, donc quand tu testeras ça fera forcément 24H.. Attention ça ne compte ni les minutes, ni les secondes.

    <?php

    function calculHeuresPresence($dateDebut, $dateFin) {

    // on met les paramètres (jour, mois, année) des 2 dates dans 2 tableaux distincts
    $dateDebut = explode('-', $dateDebut);
    $dateFin = explode('-', $dateFin);

    // on convertit en timestamp puis on fait la différence : le résultat est en secondes
    $secondes = mktime(0, 0, 0, $dateFin[1], $dateFin[2], $dateFin[0]) - mktime(0, 0, 0, $dateDebut[1], $dateDebut[2], $dateDebut[0]);

    // on transforme en heures, sans arrondi
    $heures =$secondes/3600;

    return $heures;

    }

    // appel à la fonction et affichage
    echo calculHeuresPresence('2011-04-18', '2011-04-19');

    ?>

    PS : tu peux aller jusqu'à utiliser les secondes dans ta date, puis avec 2 ou 3 lignes de plus tu peux faire en sorte que ta fonction renvoie un résultat sous forme heures/minutes/secondes

    @+
    Le jambon de Bayonne c'est bon ! Non, disons que personnellement je trouve ça bon.
    0