PHP : calculer la date dans X mois
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
PHP : calculer la date dans X mois
En PHP, comment calculer la date dans 2 mois ?
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Cordialement.
Guilhem.
Guilhem.
Salut,
date('n') est celui qui te sort le mois sans les zéros initiaux (pour le calcul)
idem pour date('j') et les jours, même si je crois que ça fonctionne avec date('d')
Voir la doc PHP :
date
mktime
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Code : Tout sélectionner
$dans_deux_mois = date("d/M/Y", mktime(0, 0, 0, (date('n')+2), date('j'), date('Y')));
idem pour date('j') et les jours, même si je crois que ça fonctionne avec date('d')
Voir la doc PHP :
date
mktime
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Voir ma configuration
-
- Lézard à collerette
- Messages : 438
- Inscription : 18 juin 2004, 09:13
Noooooon !!!!
As-tu fait le test pour 1 mois ? Regarde la date qu'il te renvoie...
Il s'agit d'un vieux bug PHP car 1 mois = 31 jours...
J'ai trouvé en fait en faisant une fonction :
C'est pour -x mois...
Merci !!!
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
As-tu fait le test pour 1 mois ? Regarde la date qu'il te renvoie...
Il s'agit d'un vieux bug PHP car 1 mois = 31 jours...
J'ai trouvé en fait en faisant une fonction :
Code : Tout sélectionner
// (01,2007,1) -> (12/2006)
// (01,2007,12) -> (1/2006)
function dateMoinsXMois($moisDepart,$anneeDepart,$nbMoisAEnlever){
$moisCalcule = $moisDepart - $nbMoisAEnlever;
$anneeCalculee=$anneeDepart;
while($moisCalcule<=0){
$moisCalcule=$moisCalcule+12;
$anneeCalculee=$anneeCalculee-1;
}
return $moisCalcule.'/'.$anneeCalculee;
}
Merci !!!
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Cordialement.
Guilhem.
Guilhem.
Il renvoit quoi ? 31 février ?guilhem_mdg a écrit :Noooooon !!!!
As-tu fait le test pour 1 mois ? Regarde la date qu'il te renvoie...
Il s'agit d'un vieux bug PHP car 1 mois = 31 jours...

C'est bizarre parce que sur les jours, il s'en sort très bien. 27 février plus deux jours t'amène bien au 1 mars les années non bissextiles.
Par ailleurs quand tu poses une question et que tu as déjà potassé le sujet, il serait agréable que tu expliques ce que tu as déjà essayé (et qui ne marche pas, et pourquoi), ça m'aurait évité de perdre mon temps à vérifier la syntaxe de ce que je te proposais.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Voir ma configuration
Sinon, essaie aussi:
Code : Tout sélectionner
$dans_deux_mois = date("d/M/Y", strtotime("now +2 month"));
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités