Manipulation des variables de type date en ph

info_Louka Messages postés 76 Statut Membre -  
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

A voir également:

3 réponses

Bertrand40 Messages postés 1344 Statut Membre 194
 
Bonjour,

Tes dates sont sous quelle forme ?
0
info_Louka Messages postés 76 Statut Membre
 
mes dates sont sous la forme suivant:
'aaaa-mm-jj'
0
Bertrand40 Messages postés 1344 Statut Membre 194
 
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