Date + 15

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
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. MaximeL. Messages postés 339 Statut Membre 80
     
    Ca ne peut pas fonctionner "Juste comme ca". Imaginons qu'on soit le:

    25 avril 2013
    d=25 / m=4 / Y=2013

    Que va-t-il se passer quand tu vas rajouter 15 à d ?
    Le 40 avril 2013 ? :p

    Donc je ne sais plus comment on fait mais ta méthode n'est pas la bonne.
    Quelqu'un va te renseigner, ou alors tu peux aller voir la :
    http://www6.webtutoriaux.com/?tdfs=1&kw=Online+Learning+Management+System
    0
  2. meuhlol Messages postés 1782 Date d'inscription   Statut Membre Dernière intervention   678
     
    //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
  3. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    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
  4. MaximeL. Messages postés 339 Statut Membre 80
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    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
  7. meuhlol Messages postés 1782 Date d'inscription   Statut Membre Dernière intervention   678
     
    $MaTable = date($data['DateAjout']);
    $jours2add = 15;
    $MaTableTS = strtotime($MaTable);
    $Supplem = date('d-m-Y', strtotime('+'.$jours2add.' days', $MaTableTS));
    0
  8. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    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
  9. meuhlol Messages postés 1782 Date d'inscription   Statut Membre Dernière intervention   678
     
    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
  10. meuhlol Messages postés 1782 Date d'inscription   Statut Membre Dernière intervention   678
     
    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
  11. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    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