Probléme avec code PHP ! aidez moi SVP

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
Configuration: Windows XP
Firefox 3.0.4

2 réponses

  1. 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
    1. 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