Bonjour,

Je me casse la tête avec le problème suivant :

A partir d'une date définie, je souhaiterais récupérer les dates correspondant à 1 mois, 2 mois avant, 3 mois avant, etc.

Avec un DateTime et un DateInterval('P1M') :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
 
$now = new DateTime('2011-08-31');
echo '<h2>'.$now->format('Y-m-d').'</h2>';
 
for ($i=1;$i<=12;$i++)
{
    $interval = new DateInterval('P1M');
    $now->sub($interval);
    echo '<pre>';print_r($now->format('Y-m-d'));echo '</pre>';
}
J'obtiens la sortie suivante :

2011-08-31

2011-07-31

2011-07-01

2011-06-01

2011-05-01

2011-04-01

2011-03-01

2011-02-01

2011-01-01

2010-12-01

2010-11-01

2010-10-01

2010-09-01
Le 31 juin n'existant pas, il va me choisir le 1er juillet. J'aurai préféré qu'il choisisse le 30 juin, en gros le jours le plus proche existant dans le mois civil précédent...

Comment faire ça en PHP ?