Trier des resultats statistiques date
Posté : 02 mai 2014, 09:46
Bonjour,
j'aimerais trier et additionner les données afin de les mettre dans un tableau de synthese par exemple :
Janvier : 47 jours
Fevrier : 59 jours
Mars : 23 jours
Avril : 12 jours
Une ame charitable pourrait t'elle m'aiguiller ?
voici le code
j'aimerais trier et additionner les données afin de les mettre dans un tableau de synthese par exemple :
Janvier : 47 jours
Fevrier : 59 jours
Mars : 23 jours
Avril : 12 jours
Une ame charitable pourrait t'elle m'aiguiller ?
voici le code
<?php
$result=mysql_query("SELECT * FROM chats");
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){
return date('t',$date)-date('d',$date);
}