<?php //activation des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); function debug($var,$title=""){ echo "<br><b>".$title."</b>"; echo "<pre>"; print_r($var); echo "</pre>"; } $date1 = new DateTime('2018-01-08'); debug($date1,"date1");; $date2 = new DateTime('2018-11-05'); debug($date2,"date2"); $mois = array(); $mois[] = $date1->format('m'); while($date1 <= $date2){ $date1->add(new DateInterval("P1M")); $mois[] = $date1->format('m'); } debug($mois,'Liste des mois'); ?>
date1
DateTime Object
(
[date] => 2018-01-08 00:00:00
[timezone_type] => 3
[timezone] => UTC
)
date2
DateTime Object
(
[date] => 2018-11-05 00:00:00
[timezone_type] => 3
[timezone] => UTC
)
Liste des mois
Array
(
[0] => 01
[1] => 02
[2] => 03
[3] => 04
[4] => 05
[5] => 06
[6] => 07
[7] => 08
[8] => 09
[9] => 10
[10] => 11
)
debug($mois,'Liste des mois');donne :
echo $date_entree = $row_LOC["date_entree"]; $today = date("Y-m-d"); function debug($var,$title=""){ echo "<br><b>".$title."</b>"; echo "<pre>"; print_r($var); echo "</pre>"; } $date1 = new DateTime($date_entree);//date_entree vaut 2018-09-30 //debug($date1,"date1");; $date2 = new DateTime($today);//today vaut 2018-02-03 //debug($date2,"date2"); $mois = array(); $mois[] = $date1->format('m'); while($date1 <= $date2){ $date1->add(new DateInterval("P1M")); $mois[] = $date1->format('m'); } debug($mois,'Liste des mois'); for($i=0, $size = count($mois); $i < $size; $i++): echo $mois[$i].'<br>'; endfor;
<?php //activation des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); function debug($var,$title=""){ echo "<br><b>".$title."</b>"; echo "<pre>"; print_r($var); echo "</pre>"; } $date1 = new DateTime('2017-07-28'); //debug($date1,"date1"); $date2 = new DateTime('2018-11-05'); //debug($date2,"date2"); $mois = array(); $mois[] = $date1->format('Y-m'); while($date1 <= $date2){ $date1->add(new DateInterval("P1M")); $mois[] = $date1->format('Y-m'); } debug($mois,'Liste des mois'); ?>
$date1 = new DateTime('2017-07-28');depasse 28 c'est à dire quand je met
$date1 = new DateTime('2017-07-29');ou
$date1 = new DateTime('2017-07-30);
$date1 = new DateTime('2017-07-28');
$date1 = new DateTime('2017-07-29');
<?php //-------------------------------------------------------------// // FONCTIONS //-------------------------------------------------------------// /** * Fonction de debug */ function debug($var,$title=""){ echo "<br><b>".$title."</b>"; echo "<pre>"; print_r($var); echo "</pre>"; } /** * $strDate1 (string) date au format Y-m-d * $strDate2 (string) date au format Y-m-d * return (array) liste des mois entre les deux dates */ function getMonth($strDate1,$strDate2){ $date1 = new DateTime($strDate1); debug($date1,"date1"); $date2 = new DateTime($strDate2); debug($date2,"date2"); if($date1 <= $date2){ $arr_mois = array(); $arr_mois[] = $date1->format('m'); while($date1 <= $date2){ $date1->add(new DateInterval("P1M")); $arr_mois[] = $date1->format('m'); } }else{ echo "Erreur : Date1 est plus grand que Date2 !"; $arr_mois = NULL; } return $arr_mois; } //-------------------------------------------------------------// // DEBUT DU CODE //-------------------------------------------------------------// $date_entree = '2018-09-30'; $today = date("Y-m-d"); //Premier exemple avec les dates tel que tu les a mises : $mois = getMonth($date_entree,$today); debug($mois,'Liste des mois'); //second exemple avec les dates dans le "bon" ordre: $mois = getMonth($today,$date_entree); debug($mois,'Liste des mois');
function getMonth($strDate1,$strDate2){ $date1 = new DateTime(date('Y-m-01',strtotime($strDate1))); debug($date1,"date1"); $date2 = new DateTime(date('Y-m-01',strtotime($strDate2))); debug($date2,"date2"); if($date1 <= $date2){ $arr_mois = array(); $arr_mois[] = $date1->format('m'); while($date1 < $date2){ $date1->add(new DateInterval("P1M")); $arr_mois[] = $date1->format('m'); } }else{ echo "Erreur : Date1 est plus grand que Date2 !"; $arr_mois = NULL; } return $arr_mois; }
<?php //activation des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); function getMonth($strDate1,$strDate2){ $date1 = new DateTime(date('Y-m-01',strtotime($strDate1))); debug($date1,"date1"); $date2 = new DateTime(date('Y-m-01',strtotime($strDate2))); debug($date2,"date2"); if($date1 <= $date2){ $arr_mois = array(); $arr_mois[] = $date1->format('m'); while($date1 < $date2){ $date1->add(new DateInterval("P1M")); $arr_mois[] = $date1->format('m'); } }else{ echo "Erreur : Date1 est plus grand que Date2 !"; $arr_mois = NULL; } return $arr_mois; } $date1 = new DateTime('2017-07-29'); debug($date1,"date1"); $date2 = new DateTime('2018-11-05'); debug($date2,"date2"); $mois = array(); $mois[] = $date1->format('Y-m'); while($date1 <= $date2){ $date1->add(new DateInterval("P1M")); $mois[] = $date1->format('Y-m'); } debug($mois,'Liste des mois'); ?>
/** * Fonction de debug */ function debug($var,$title=""){ echo "<br><b>".$title."</b>"; echo "<pre>"; print_r($var); echo "</pre>"; }
<?php //activation des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); /** * Fonction de debug */ function debug($var,$title=""){ echo "<br><b>".$title."</b>"; echo "<pre>"; print_r($var); echo "</pre>"; } function getMonth($strDate1,$strDate2){ $date1 = new DateTime(date('Y-m-01',strtotime($strDate1))); debug($date1,"date1"); $date2 = new DateTime(date('Y-m-01',strtotime($strDate2))); debug($date2,"date2"); if($date1 <= $date2){ $arr_mois = array(); $arr_mois[] = $date1->format('m'); while($date1 < $date2){ $date1->add(new DateInterval("P1M")); $arr_mois[] = $date1->format('m'); } }else{ echo "Erreur : Date1 est plus grand que Date2 !"; $arr_mois = NULL; } return $arr_mois; } $date1 = new DateTime('2017-07-29'); debug($date1,"date1"); $date2 = new DateTime('2018-11-05'); debug($date2,"date2"); $mois = array(); $mois[] = $date1->format('Y-m'); while($date1 <= $date2){ $date1->add(new DateInterval("P1M")); $mois[] = $date1->format('Y-m'); } debug($mois,'Liste des mois'); ?>
<?php //-------------------------------------------------------------// // FONCTIONS //-------------------------------------------------------------// /** * Fonction de debug */ function debug($var,$title=""){ echo "<br><b>".$title."</b>"; echo "<pre>"; print_r($var); echo "</pre>"; } /** * $strDate1 (string) date au format Y-m-d * $strDate2 (string) date au format Y-m-d * return (array) liste des mois entre les deux dates */ function getMonth($strDate1,$strDate2){ $date1 = new DateTime(date('Y-m-01',strtotime($strDate1))); debug($date1,"date1"); $date2 = new DateTime(date('Y-m-01',strtotime($strDate2))); debug($date2,"date2"); if($date1 <= $date2){ $arr_mois = array(); $arr_mois[] = $date1->format('m'); while($date1 < $date2){ $date1->add(new DateInterval("P1M")); $arr_mois[] = $date1->format('m'); } }else{ echo "Erreur : Date1 est plus grand que Date2 !"; $arr_mois = NULL; } return $arr_mois; } //-------------------------------------------------------------// // DEBUT DU CODE //-------------------------------------------------------------// $date_entree = '2018-09-30'; $today = '2017-07-29'; //second exemple avec les dates dans le "bon" ordre: $mois = getMonth($today,$date_entree); debug($mois,'Liste des mois'); ?>
date1
DateTime Object
(
[date] => 2017-07-01 00:00:00
[timezone_type] => 3
[timezone] => UTC
)
date2
DateTime Object
(
[date] => 2018-09-01 00:00:00
[timezone_type] => 3
[timezone] => UTC
)
Liste des mois
Array
(
[0] => 07
[1] => 08
[2] => 09
[3] => 10
[4] => 11
[5] => 12
[6] => 01
[7] => 02
[8] => 03
[9] => 04
[10] => 05
[11] => 06
[12] => 07
[13] => 08
[14] => 09
)
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.
Et dans une boucle incrémenter le mois pour aller de ta date de départ jusqu'à la date de fin.
La encore en alimentant un array ..
Je suis étonnée que tu n'aies pas trouvé d'exemple sur le net... Y'en a pourtant pas mal...