Hi all,
Aujourd’hui j’ai eu besoin de récupérer exactement le même jour du mois prochain (en PHP) pour pouvoir définir une prochaine date de facturation (ou autre).
J’ai cherché un peu sur google ( i’m lazy i know 🙂 ) pour voir si j’arrive à trouver une fonction toute prête à utiliser mais malheureusement je n’ai pas vraiment trouvé quelque chose d’utile. J’ai du donc écrire cette fonction moi même 🙁
Donc, je résume: j’ai besoin d’une fonction PHP qui me retourne la date exacte du même jour qu’aujourd’hui mais dans le mois prochain.
Il faut:
Vérifier si le même jour qu’aujourd’hui existe le mois prochain ( par exemple si je suis le 30/01/2014, je ne peux pas dire que la prochaine date est 31/02/2014 )
Vérifier si ce n’est pas le dernier mois de l’année ( par exemple si je suis le 25/12/2014, la prochaine date devra être dans l’année 2015 et pas 2014)
Finalement, je dois aussi récupérer le jour d’aujourd’hui dans les résultats et le stocker quelque part pour le réutiliser ( sinon, nous aurons un cumul de commandes passées le 30, 31 et voir même le 29 qui seront tous facturées le 28 ou 29 à long terme puisque pendant le mois de Février, toutes les commandes passé le 29, 30 et 31 auront comme prochaine échéance le 28 du mois)
Bon, assez de description 🙂 , passons au code:
function getNextdate($thisday = NULL, $thismonth = NULL, $thisyear = NULL){ // get current date if ($thisday == NULL) $thisday = date('d'); if ($thismonth == NULL) $thismonth = date('m'); if ($thisyear == NULL) $thisyear = date('Y'); // create next month and year if ( $thismonth < 12 ): $nextmonth = $thismonth + 1; $year = $thisyear; else: $nextmonth = '1'; $year = $thisyear + 1; endif; // count days of the next month $somenextmonth = strtotime($year."-".$nextmonth."-1"); $countdaysnextmonth = date('t', $somenextmonth); // add zero if < 10 if ($nextmonth < 10) $nextmonth = '0'.$nextmonth; // create next date if ( $thisday < $countdaysnextmonth ) $nextdate = $year.'-'.$nextmonth.'-'.$thisday; else $nextdate = $year.'-'.$nextmonth.'-'.$countdaysnextmonth; $return_array = array('nextdate' => $nextdate, 'defaultday' => $thisday); return $return_array; }
Enjoy 😉
Catégorie: Developpement web, E-commerce, PHP.
9 commentaires
Merci, parfait pour le script que je suis en train de faire !
Merci pour le script ,et bon courage
merci le scripte c’est tres important
j’aime bien le script merci pour l’aide <3
Le top ! je l’ai adapté avec un 4ème paramètre (dans mon cas c’est pour du paiement en 3x), et ça marche nickel 🙂
Merci beaucoup pour le script 🙂
C’est pas mal,mais n’était-ce pas plsu cool de générer la facture par exemple à 30 jours plus ? Pour le cas c’est encore plus simple et sur le net il y a de quoi récupérer .
Ah non, je découvre ce script un peu trop tard, je me suis fait mes propres fonctions pour créer mon calendrier. Ce que j’ai fait ressemble pas mal.
Sinon tu fais echo date(« Y-m-d »,strtotime(« +1 month »,strtotime(« 2014-01-30 »))) et ça fait la même chose en une ligne !