Alpha911
-
1 mai 2014 à 23:59
nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
6 mai 2014 à 07:55
Bonjour,
Pour un refuge animalier, nous avons besoin d'avoir une vue sur le nombre de jours ou sont entrés nos pensionnaires avec classement par mois quelque chose qui puisse s'afficher sous forme de tableau :
Janvier : 10 jours
Fevrier : 23 jours
Mars : 27 jours
....
sachant que les enregistrements sont faits ainsi :
Voici jusqu'ici ce qui a été fait mais je pense que celà ne convient pas .... Pouvez vous apporter vos lumieres ?
while($row = mysql_fetch_array($result)){ $tabDates = jourParMois($row['date_entree'], $row['date_sortie']); //appel à la fonction jourParmois() /*pour chaque couple(date_entree,date_sortie) on affiche éventuellement tous les mois compris entre date_entree et date_sortie incluses*/ foreach($tabDates as $date){ echo $date,"<br>"; } }
/* * détermine les mois compris entre 2 dates **/
function jourParMois($dateDebut, $dateFin){ $dateDebut=strtotime($dateDebut);
$dateFin =strtotime($dateFin);
$dateCourante = $dateFin;
$dates=array(); //les dates à comparer correspondent à des mois different, alors on peut chercher les mois compris entre dateDebut et dateFin if( date('m',$dateDebut) != date('m',$dateFin)) { while ($dateCourante >= $dateDebut) { $dateCourante = strtotime( date('Y/m/01/',$dateCourante).' -1 month'); $dates[]=date('M',$dateCourante) .':'.date('t',$dateCourante).'jours';
} sort($dates); $dates[0]=date('M',$dateDebut).':'.jRestants($dateDebut).'jours';//on ajoute la DateDebut $dates[]=date('M',$dateFin).':'.jRestants($dateFin).'jours';//on ajoute la dateFin au tableau }else{//cas les 2 dates (debut et fin) correspondent au même mois $nbJours = ((($dateFin - $dateDebut)/86400) + 1).' jours'; //$nbJours = (($dateFin - $dateDebut)/86400).' jours'; $dates[] = date('M', $dateDebut).':'. $nbJours; }
return $dates; } /* nombre de jours restants d'un mois donné */ function jRestants($date){
jordane45
Messages postés38156Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 4 mai 2024344 2 mai 2014 à 15:27
Bonjour,
Je ne suis pas bien certain d'avoir compris ta demande...
Tu as dans une table une liste d'animaux... mimi..pepete..toto...
Pour chacun, une date d'entrée et une date de départ.
Au final tu souhaites obtenir un tableau qui t'affiche Mois / Mois le nombre de jours où vous les avez eu..
( pour CHAQUE ANIMAL ou bien la somme pour l'ensemble des pensionnaires ?)
Pour être bien sûr de ce que tu souhaites faire...
Peux tu nous afficher quel serait le résultat ( ce qu'il te faut afficher) pour cet exemple :
2, mimi, 2013-03-14, 2013-05-21
Si c'est pour chaque animal, mimi donnerait un truc du genre :
Mars = 17
Avril = 30
Mai = 21
le tableau devrait etre une statistique globale de ce genre :
Decembre : 3 jours
Janvier : 6 jours
Minette et titou sont dans la base et minette a fait 1 jour en decembre et Titou a fait 2 jours en decmebre soit un total general de 3 jours ... pareil en Janvier.
nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 202317 6 mai 2014 à 07:55
toujours pareil, en s'appuyant sur le mois et l'année tu pourras récupérer les enregistrements qui t'interesse. Il ne te reste qu'à soustraire avec la date du 1er du mois qui suit