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 ; }
Du coup, en gardant le mode objet cela donne une fonction de ce style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public static function diffMois($dateDebut, $dateFin) { $dtDeb = new DateTime($dateDebut); $dtFin = new DateTime($dateFin); $interval = $dtDeb->diff($dtFin); $nbmonth= $interval->format('%m'); $nbyear = $interval->format('%y'); return 12 * $nbyear + $nbmonth; }
Salut MiguelMba
Tu fais remonter une discussion de 2011, dont le dernier message date de 2015, avec pour seul info "la reponse donne 0" en titre.
Pas sûr que tu obtiennes beaucoup d'aide.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager