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. //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é.
    0
    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 !
      0
      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.
        0
        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 !
          0
          1. $MaTable = date($data['DateAjout']);
            $jours2add = 15;
            $MaTableTS = strtotime($MaTable);
            $Supplem = date('d-m-Y', strtotime('+'.$jours2add.' days', $MaTableTS));
            0
            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
              0
              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
                0
                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;
                  0
                  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 !
                    0