Manipulation des variables de type date en ph

Fermé
info_Louka Messages postés 64 Date d'inscription mardi 25 janvier 2011 Statut Membre Dernière intervention 16 mars 2013 - 18 avril 2011 à 14:45
Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 - 19 avril 2011 à 13:25
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

Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 192
19 avril 2011 à 08:40
Bonjour,

Tes dates sont sous quelle forme ?
0
info_Louka Messages postés 64 Date d'inscription mardi 25 janvier 2011 Statut Membre Dernière intervention 16 mars 2013
19 avril 2011 à 11:20
mes dates sont sous la forme suivant:
'aaaa-mm-jj'
0
Bertrand40 Messages postés 1193 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 192
Modifié par Bertrand40 le 19/04/2011 à 13:26
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