Calcul nb jours entre 2 dates
Bonjour,
Voici un sujet ou l'on trouve beaucoup de réponses sur le net. J'ai cherché et essayé de le mettre en place sur mon site, mais cela ne marche pas correctement.
Je vous explique, j'ai mis ce code dans mon header.php , qui est intégré dans toutes mes pages via un require:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| /////////////////////////////
// Fonction calcul jours entre date
/////////////////////////////
function NbJours($debut, $fin) {
$tDeb = explode("-", $debut);
$tFin = explode("-", $fin);
$diff = mktime(0, 0, 0, $tFin[1], $tFin[2], $tFin[0]) -
mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]);
return(($diff / 86400)+1);
} |
Ensuite j'ai mis ce code, pour calculer le nombre de jours entre mes 2 dates :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
$query = "SELECT DateCandidature from MM_Candidature ORDER BY NumCandidature DESC LIMIT 1";
$result = mysql_query($query) or die (mysql_error());
$resultat=mysql_fetch_row($result);
$datefr=changedateusfr($resultat[0]);
$date2 = date("j-m-Y");
$Nombres_jours = NbJours($datefr, $date2);
echo $Nombres_jours; |
dans mon exemple, ci dessus, $datefr = 2010-02-25, et $date2 et la date de jour , le résultat est 1096 jours. bizarre ? :aie:
P.S. Je précise que j'ai des fonctions de conversions de dates sur mon site :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| /////////////////////////////
// version 0.10 transforme une date us aaaa-mm-jj en date fr jj-mm-aaaa
//et vice-versa
/////////////////////////////
function changedateusfr($dateus)
{
$datefr=$dateus{8}.$dateus{9}."-".$dateus{5}.$dateus{6}."-".$dateus{0}.$dateus{1}.$dateus{2}.$dateus{3};
return $datefr;
}
function changedatefrus($datefr)
{
$dateus=$datefr{6}.$datefr{7}.$datefr{8}.$datefr{9}."-".$datefr{3}.$datefr{4}."-".$datefr{0}.$datefr{1};
return $dateus;
} |
Est-ce que cela poserai problème ? J'ai déjà essayé de bidouiller, d'inverser les formats, mais je ne trouve pas.
Par contre si je mets dans ma fonction de calcul d'écart, les dates manuellement au lieu de mettre mes variables, cela fonctionne parfaitement.