Salut @ tous !

J'ai un problème avec un fonction qui est censé ajouter 1 mois à une date :

public function add_months($nb_months = 1, $date)
    {
    return date('Y-m-d', strtotime($date.' +'.$nb_months.' month'));
    }
  • Si j'ajoute 1 mois au 2013-01-31 ça me retourne 2013-03-03
    J'ai essayé avec le format de date français 31-01-2013 mais c'est le même problème.

  • Si j'ajoute 1 mois au 2013-06-30 ça me retourne 2013-07-30 , est-ce que ça ne devrait pas plutôt être 2013-07-31

Bizarre non ??

2 réponses


snap
Réponse acceptée

tu veux ajouter 1 mois ou 31 jours?
car pour 31 jours tu remplace strtotime($date.' +'.$nb_months.' month') par strtotime($date) + $nb_months * (3600 * 24 * 31))

Après le mieux serait d'utiliser la classe DateTime (avec sa fonction add() )

6ber6ou
Auteur

J'ai finalement utilisé DateTime c'est bien plus simple.
Merci pour ton aide