Probléme avec code PHP ! aidez moi SVP

paulo93700 Messages postés 35 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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. (Pabix) Messages postés 600 Statut Membre 81
     
    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
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    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