Le dernier jour du mois suivant en PHP

Publié le 30/09/2008

Allez un ticket hyper-rapide qui pourra rendre service à quelques uns. //Comment récupérer le __dernier jour du mois suivant__ ?// J’ai vu passer des dizaines de solutions sur le net, cela dit beaucoup ont oublié de lire la doc :)

Le dernier jour du mois suivant est expliqué en bas de la page de documentation de la fonction “mktime”, grosso-modo le dernier jour du mois est représenté dans mktime par le chiffre “0”. **Or, cela nous fait reculer d’un mois** la valeur du mktime puisque le chiffre “0” correspond au jour précédent le 1er du mois.

Si nous étions le 1er septembre, mktime avec la valeur du jour du mois “9” à 0 donnerait en fait le 31 Aout. Donc le 00/09/2008 correspond au 31/08/2008…

Dans ce cas, on doit prendre le mois courant (avec date(‘n’) et non date(’m’) pour avoir un entier sans 0 devant), puis lui ajouter non pas “1” mais “2”. Avec ce timestamp récupéré, nous pourrons recréer une date facilement:

` //le timestamp du dernier jour du mois suivant $lastdaynextmonth = mktime(0,0,0,date(‘n’)+2,0,date(‘Y’));

//dd/mm/YYYY $date = date(’d/m/Y’,$lastdaynextmonth); `

En gros si nous sommes le 15 septembre 2008, je cherche la date du 00/11/2008 qui me donnera le 31/10/2008… Plus de soucis avec le 30, 31 ou les 28 et 29 du mois de février, on a tout d’un seul coup.

C’est pas plus compliqué… C’est cool PHP hein ?

comments powered by Disqus