Date + 15

Résolu
Bonjour,

J'essaie d'ajouter 15 jours à une date en php mais j'y arrive pas...
$MaTable = date($data['DateAjout']);
//$Supplem = date($data['DateAjout'], strtotime("+15 day"));
$Supplem = date($data['DateAjout']->format('Ymd'), mktime(0, 0, 0, date("m"), date("d") + 15, date("Y")));

if($MaTable <= $Supplem)
echo $data['NumId']." - ".$MaTable." - ".$Supplem."<br />";

Pouvez-vous me donner un coup de main svp ?

10 réponses

  1. Merci à tous de votre aide.
    $MaTable = $data['DateAjout'];
    $Supplem = date('d/m/Y', strtotime($MaTable. ' + 180 days'));

    Ce code fonctionne grâce à vous.
    Merci encore !
    1. Ca marche aussi comme ça :

      $Date1 = '20-09-2013';
      $date = new DateTime($Date1);
      $date->add(new DateInterval('P15D')); // P15D = période de 15 jours
      $Date2 = $date->format('d/m/Y');

      echo $Date2;
      1. Sinistrus,

        Je viens de faire ceci en local (php v5.4.3)

        <?php
        $MaTable = '20/09/2013';
        $Supplem = date('d/m/Y', strtotime($MaTable. ' + 15 days'));

        echo $Supplem
        ?>

        Ca m'affiche 01/01/1970

        En remplaçant
        $MaTable = '20/09/2013';
        par
        $MaTable = '20-09-2013';

        Ca m'affiche 05/10/2013
        1. Meuhlol, j'ai essayé mais comme j'ai dis plus haut, il ajout effectivement +15 à jour et non pas à date.
          Pour la date du :
          20/09/2013 il me donne 16-01-1970 - Erreur
          01/07/2013 il me donne 22-01-2013 - OK
          1. $MaTable = date($data['DateAjout']);
            $jours2add = 15;
            $MaTableTS = strtotime($MaTable);
            $Supplem = date('d-m-Y', strtotime('+'.$jours2add.' days', $MaTableTS));
            1. Avec ça :
              $MaTable = date($data['DateAjout']);
              $Supplem = date_format($MaTable, "d/m/Y");
              $Supplement = date($Supplem, mktime(0, 0, 0, date("m"), date("d") - 40, date("Y")));

              Je ne sais pas si c'est correct en tout cas ça ne fonctionne pas !
              1. Plusieurs solutions.

                Tu peux changer la façon dont MySQL enregistre les dates (par défaut c'est 2013-09-30),
                ou alors convertir cette date une fois récupérée dans le même format que celles utilisées dans PHP.
                1. Merci mais :
                  $dateDebut = $data['DateAjout'];
                  $dateDebutTS = strtotime($dateDebut);
                  $dateFinale = date('d-m-Y', strtotime('+15 days', $dateDebutTS ));
                  affiche:
                  1 - 20/09/2013 >> 16-01-1970
                  2 - 01/07/2013 >> 22-01-2013

                  le problème avec mon code est qu'il refuse de prendre en compte la date de la table (db).
                  Si je remplace :
                  $MaTable = date($data['DateAjout']);
                  $Supplem = date($data['DateAjout']->format('Ymd'), mktime(0, 0, 0, date("m"), date("d") + 15, date("Y")));
                  en
                  $MaTable = date($data['DateAjout']);
                  $Supplem = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d") + 15, date("Y")));
                  cela fonctionne.
                  Mais lorsque j'ajoute $data['DateAjout'] là j'ai un problème.
                  or d/m/Y est la date du jour !
                  1. //Ta date
                    $dateDebut = '30-09-2013';

                    //Le nmbr de jours à rajouter
                    $jours2add = 15;

                    //Tu transformes ça en TimeStamp
                    $dateDebutTS = strtotime($dateDebut);

                    //Calcul...
                    $dateFinale = date('d-m-Y', strtotime('+'.$jours2add.' days', $dateDebutTS ));

                    (____(_bdKey____________()~
                    Pensez à voter pour des réponses.
                    Pensez à cliquer sur "Résolu" si votre problème est réglé.