Kerod a publié une fonction dans la FAQ mais j'ai un problème...

Pour faire la différence entre deux dates, il faut utiliser les fonctions suivantes :

* explode() qui permettra de récuperer le jour, le mois et l'année.
* mktime() qui nous donnera le timestamp pour effectuer les calculs.

Pour obtenir le nombre de jours ou le nombre de semaines entre deux dates, il faut donc procéder comme ceci :


//Définition des date au format jour-mois-année
$date1 = "12-07-2003";
$date2 = "15-06-2003";

//Extraction des données
list($jour1, $mois1, $annee1) = explode('-', $date1);
list($jour2, $mois2, $annee2) = explode('-', $date2);

//Calcul des timestamp
$timestamp1 = mktime(0,0,0,$mois1,$jour1,$annee1);
$timestamp2 = mktime(0,0,0,$mois2,$jour2,$annee2);
echo abs($timestamp2 - $timestamp1)/86400; //Affichage du nombre de jour : 27
echo abs($timestamp2 - $timestamp1)/(86400*7); //Affichage du nombre de semaine : 3.85


On utilise abs afin d'obtenir toujours une valeur positive, donc les dates peuvent être mises dans n'importe quel ordre.
Mon soucis c'est que si date1 = '25-03-2007' et date2='27-03-2007'

A cause du changement d'heure, le nombre de jour ne tombe pas juste....
Au niveau compta, c'est pas possible pour moi. C'est la misère à gérer.
Personne n'a été confronté au problème ?

Merci.