Bonjour,
La question a peut-être était déjà posé. Je cherche a récupérer le nombre de mois entre deux dates.
Merci d'avance
Bonjour,
La question a peut-être était déjà posé. Je cherche a récupérer le nombre de mois entre deux dates.
Merci d'avance
En effet, ça à tendance à revenir souvent
Exemple: http://www.developpez.net/forums/d10...issu-requetes/
Bref, utilise DateTime pour faire ce que tu veux faire, y'a tout quoi tu veux: http://www.php.net/manual/en/datetime.diff.php
Merci beaucoup pour ta réponse
Ça ma beaucoup aidé.
je poste le code pour ceux qui recherche :
Encore merci pour ton aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5$datetime1 = new DateTime($DateDébut); $datetime2 = new DateTime($DateFin); $interval = $datetime1->diff($datetime2); $nbday= $interval->format('%m'); //Retourne le nombre de mois

Bonjour,
je sais que le sujet est vieux mais je préfère ajouter ce qui suis afin d'éviter à d'autre de perdre du temps :
renvoi 0 au lieu de 12
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $start = '2008-12-31'; $end = '2009-12-31'; $datetime1 = new DateTime($start); $datetime2 = new DateTime($end); $interval = $datetime1->diff($datetime2); $nbmonth= $interval->format('%m'); //Retourne le nombre de mois
J'ai fais pas mal de test et en fait la fonction se trompe assez souvent ?!
echo $interval->y te donnera 1 puisqu'il y'a exactement un an entre tes 2 dates. Et donc forcement echo $interval->m est à 0.
Fait un var_dump($interval) en changeant les dates , tu comprendras mieux le fonctionnement de diff.

Oui merci je n'avais pas bien compris l'utilisation de la fonction.
Pour ceux qui n'ont pas PHP 5.3 j'ai fais ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function diff_en_mois_entre_deux_date($start,$end) { //$date_format = YYYY-m-d sscanf($start, "%4s-%2s-%2s", $annee, $mois, $jour); $a1 = $annee; $m1 = $mois; sscanf($end, "%4s-%2s-%2s", $annee, $mois, $jour); $a2 = $annee; $m2 = $mois; $dif_en_mois = ($m2-$m1)+12*($a2-$a1); return $dif_en_mois ; }
Partager