Page 1 sur 1
PHP : calculer la date dans X mois
Publié : 31 janv. 2007, 13:45
par guilhem_mdg
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
Publié : 31 janv. 2007, 14:49
par Asumbaa
Salut,
Code : Tout sélectionner
$dans_deux_mois = date("d/M/Y", mktime(0, 0, 0, (date('n')+2), date('j'), date('Y')));
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
Publié : 31 janv. 2007, 15:47
par guilhem_mdg
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 :
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;
}
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
Publié : 31 janv. 2007, 16:44
par Asumbaa
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...
Il renvoit quoi ? 31 février ?

(non, je n'ai pas testé, je n'ai pas d'environnement de dev sous la main. J'essayais juste de t'aider)
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
Publié : 31 janv. 2007, 17:19
par Bobe