Incrémenntation date

Résolu
Bonjour, voila depuis un petit moment j'ai un probleme pour incrémenter une date.En effet je souhaiterai ajouter 3 mois à une date par rapport à sa date de saisie dans un formulaire. Voici mon code il ya une partie consacré a l'incrémentation :

<?php
$null='';
$Nature = $_POST['nature'];
$Type = $_POST['type'];
$Superficie = $_POST['superficie'];
$Datedispo = $_POST['datedispo'];
$Prix = $_POST['prix'];
$Description = $_POST['description'];
$Commune = $_POST['commune'];

function incremente($Datedispo)
{
$T_année=split("-",$Datedispo);
$annee=$T_année[0];
echo ($annee);
$mois=$T_année[1];
echo ($mois);
$jour=$T_année[2];
echo ($jour);

if ($jour< 28)
{
$Datedispo <= $jour($Datedispo)+1 +$mois($Datedispo)+$annee($Datedispo);
}
else
{
if ($jour($Datedispo) <30 && $mois($Datedispo) <>2)
{
$Datedispo <= $jour($Datedispo)+1 +$mois($Datedispo)+ $annee($Datedispo);
}
else { if ($jour($Datedispo) <31 && $mois($Datedispo) <> 4 && $mois($Datedispo) <> 6 && $mois($Datedispo) <>9 && $mois($Datedispo) <> 11)
{
$Datedispo <= $jour($Datedispo)+1 +$mois($Datedispo) +$annee($Datedispo);
}
else
{
if ($jour($Datedispo) == 28 && $mois($Datedispo) == 2 && $annee($Datedispo) % 4 == 0)
{
$Datedispo <= $jour($Datedispo)+1 +$mois($Datedispo)+ $annee($Datedispo);
}
else {
if ($mois($Datedispo) <> 12) {
$Datedispo <- 01 + $mois($Datedispo)+1 +$annee($Datedispo);
}
else{
$Datedispo <= 01+ 01 + $annee($Datedispo)+1;
}
}
}
}
}
}

$nom = $_POST['nomstructure'];
$contact = $_POST['contact'];
$tel = $_POST['telephone'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['CP'];
$ville = $_POST['ville'];
$mail = $_POST ['mail'];

If (($Type == $null) || ($Superficie == $null) || ($Datedispo == $null) || ($Description == $null) || ($Commune ==$null) || ($nom == $null) || ($contact == $null) || ($tel == $null) || ($mail == $null))
{
require('erreur.php');
}
Else
{

include('formulaire.php');

$requete = mysql_query("INSERT INTO agence (num,nom,contact,telephone,adresse,code_postal,agence.ville,mail) VALUES (null,'$nom','$contact','$tel','$adresse','$codepostal','$ville','$mail')") or die ('Erreur' .mysql_error());
$requete2 = mysql_query("SELECT num FROM agence WHERE nom ='$nom'");
$res=mysql_fetch_array($requete2);
$num=$res['num'];
$requete = mysql_query("INSERT INTO locaux (numero,nature,type,superficie,datedispo,datefin,prix,descriptif,commune,agence) VALUES (null,'$Nature','$Type','$Superficie','$Datedispo','$Datedispo','$Prix','$Description','$Commune','$num')") or die('Erreur' .mysql_error());
mysql_close();
}
?>

Si quelqu'un a une idée je suis preneur merci bonne journée
Configuration: Windows XP
Firefox 3.0.11

12 réponses

  1. essaye sa

    $calcule_date = date('d-m-Y', mktime(0, 0, 0,$mois + $NBMois , $jour , $annee));

    avec $NBMois le nombre de mois que tu veut ajouter

    $mois, $jour et $annee le jour le mois et l'annee de ta date de dépard

    et 'd-m-Y' le format de ta date que tu peut aussie mettre sous la forme 'd/m/Y'

    ;) bonne journée

    0
    1. j'essaye sa ou exactement, dois-je remplacer tout mon script ? Car il me semble déjà avoir essayer cette fonction
      0
      1. garde une copie de ton scirpt au cas ou mais normalement essaye juste après ton split

        après la ligne echo $jour;

        tu copie cette ligne :
        $NBMois = 3; vu que tu veut +3 mois
        $calcule_date = date('d-m-Y', mktime(0, 0, 0,$mois + $NBMois , $jour , $annee));
        avec un echo $calcule_date;

        pour vérifier que la date et bien ce que tu veut

        et tu supprime tout du if ($jour< 28)

        jusqu'au } avant $nom

        normalement sa devrait être bon

        0
        1. cette date va me permettre de lancer une alerte mail pour réactualiser une offre
          0
          1. Par contre oublie pas d'attribuer la valeur de $calcule_date a la variable que tu utilise dans ta requète ;)

            dit si sa marche ^^
            0
            1. oui bien sur je suis en train de tester pour voir je te dit si sa marche
              0
              1. sa me met une erreur qui a vrai dire ne me parle pas beaucoup

                Notice: Undefined variable: calcule_date in C:\Program Files\EasyPHP 3.0\www\site\cible.php on line 84
                ErreurIncorrect date value: '' for column 'datefin' at row 1
                0
                1. Peut tu me montrer le code sa sera plus simple pour voir l'erreur ^^
                  0
                  1. <?php
                    $null='';
                    $Nature = $_POST['nature'];
                    $Type = $_POST['type'];
                    $Superficie = $_POST['superficie'];
                    $Datedispo = $_POST['datedispo'];
                    $Prix = $_POST['prix'];
                    $Description = $_POST['description'];
                    $Commune = $_POST['commune'];

                    function incremente($Datedispo)
                    {
                    $T_année=split("-",$Datedispo);
                    $annee=$T_année[0];
                    echo ($annee);
                    $mois=$T_année[1];
                    echo ($mois);
                    $jour=$T_année[2];
                    echo ($jour);

                    $NBMois = 3;
                    $calcule_date = date('Y-m-d', mktime(0, 0, 0,$mois + $NBMois , $jour , $annee));
                    echo ($calcule_date);
                    }

                    $nom = $_POST['nomstructure'];
                    $contact = $_POST['contact'];
                    $tel = $_POST['telephone'];
                    $adresse = $_POST['adresse'];
                    $codepostal = $_POST['CP'];
                    $ville = $_POST['ville'];
                    $mail = $_POST ['mail'];

                    If (($Type == $null) || ($Superficie == $null) || ($Datedispo == $null) || ($Description == $null) || ($Commune ==$null) || ($nom == $null) || ($contact == $null) || ($tel == $null) || ($mail == $null))
                    {
                    require('erreur.php');
                    }
                    Else
                    {

                    include('formulaire.php');

                    $requete = mysql_query("INSERT INTO agence (num,nom,contact,telephone,adresse,code_postal,agence.ville,mail) VALUES (null,'$nom','$contact','$tel','$adresse','$codepostal','$ville','$mail')") or die ('Erreur' .mysql_error());
                    $requete2 = mysql_query("SELECT num FROM agence WHERE nom ='$nom'");
                    $res=mysql_fetch_array($requete2);
                    $num=$res['num'];
                    $requete = mysql_query("INSERT INTO locaux (numero,nature,type,superficie,datedispo,datefin,prix,descriptif,commune,agence) VALUES (null,'$Nature','$Type','$Superficie','$Datedispo','$calcule_date','$Prix','$Description','$Commune','$num')") or die('Erreur' .mysql_error());
                    mysql_close();
                    }
                    ?>
                    0
                    1. Pourquoi tu utilise

                      function incremente($Datedispo) ??

                      Car si je lis bien ton code a aucun moment tu n'appelle cette fonction supprime

                      function incremente($Datedispo)
                      {
                      et le crochet a la fin

                      }

                      sa devrait mieux marcher ^^

                      dit si c'est bon ;)

                      0
                      1. eh bin écoute je te remercie ENORMEMENT car cela fait deux mois que j'essaye de faire sa et la tu ma donné un énorme coup de main merci beaucoup a toi
                        0
                        1. De rien sa a été un plaisir si tu a d'autre problème hésite pas ;)

                          passe ton sujet en résolu si tout fonctionne ;)
                          0