Probléme avec code PHP ! aidez moi SVP

Fermé
paulo93700 Messages postés 35 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 21 décembre 2008 - 7 déc. 2008 à 18:45
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 7 déc. 2008 à 20:24
Bonjour,

je travaille sur un code pour établir une date d'expiration, il y a un problème mais je ne vois pas ou. lol

le code créer est le suivant :



<?php //établir une date d'expiration
$jdure=30;
$mdure=0;
$adure=0;

$j = date("d")+$jdure;
$m = date("m")+$mdure;
$a = date("Y")+$adure;


if ($m==04) { $jmax = 30;}
elseif ($m==06) { $jmax = 30;}
elseif ($m==09) { $jmax = 30;}
elseif ($m==11) { $jmax = 30;}
elseif ($m==02) { $jmax = 28;} //mois de février à changer chaque année
else { $jmax = 31;}

if ($j > $jmax) { $j1 = $j - $jmax; $m1 = $m + 1;}
elseif ($m1 > 12) { $m2 = $m1 - 12; $a1 = $a + 1;}
elseif ($m > 12) { $m2 = $m - 12; $a1 = $a + 1;}

else { $j1 = $j; $m2 = $m; $a1 = $a;}

echo "bonjour, la date d'expiration de votre annonce est le $j1/$m2/$a1";
?>

POUVEZ VOUS M'AIDEZ SVP sa serait sympa ...
OU me dire peut-être si il y a une autre solution pour avoir une date d'expiration (autre code)

Car je me suis formé tous seul, donc je ne connais pas vraiment tous

Cordialement
Paulo
A voir également:

2 réponses

(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 déc. 2008 à 18:52
Bonjour, l’erreur est dans les if… elseif

if ($j > $jmax) { $j = $j - $jmax; $m = $m + 1;}
if ($m > 12) { $m = $m - 12; $a = $a + 1;}

C’est largement suffisant, je ne vois pas pourquoi vous utilisez elseif… vous savez ce que elseif veut dire ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
7 déc. 2008 à 20:24
une autre solution:

passer par le timestamp Unix

tu transformes ta date actuelle en timestamp $time_actuel=time();

tu y rajoutes un timestamp correspondant à ton écart de 30 jours $delta=30*24*60*60;

$time_limit=$time_actuel+$delta;

$a=date("Y",$time_limit);
$m=date("m",$time_limit);
$j=date("d",$time_limit);

plus d'infos:

http://phpcodeur.net/articles/php/dates
0