Le dernier jour du mois suivant en PHP
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 ?