Duplicata possible:
Comment obtenir le mois et l'année précédents par rapport à aujourd'hui, en utilisant strtotime et date?
Aujourd'hui est le 31 décembre mais strtotime("-1 months")
renvoie décembre:
echo date("Y-m", strtotime("-1 months"));
Idem pour strtotime("last month")
Comment puis-je retourner correctement le mois précédent (novembre)?
strtotime("first day of last month")
Le first day of
est la partie importante telle que détaillée sur la page de manuel Formats relatifs .
Exemple: http://codepad.viper-7.com/dB35q8 (avec la date d'aujourd'hui codée en dur)
strtotime("-1 months")
serait 2012-11-31
, mais il n'y a pas de 31 novembre. Il est passé un jour 2012-11-30
, Ce qui donne 2012-12-01
. Vous le verrez quand vous le ferez
echo date("Y-m-d", strtotime("-1 months"));
donne en sortie
2012-12-01
Voir codepad