recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment augmenter le nombre de jours dans $Date en PHP

<p>J'ai une date renvoyée dans le cadre d'une requête MySQL au format <code>2010-09-17</code>. </p> <p>Je souhaite définir les variables $Date2 à $Date5 comme suit : </p> <p><code>$Date2 = $Date + 1</code></p> <p><code>$Date3 = $Date + 2</code></p> <p>Attendez, cela renvoie <code>2010-09-18</code>, <code>2010-09-19</code>, et ainsi de suite. </p> <p>J'ai essayé</p> <pre class="brush:php;toolbar:false;">date('Y-m-d', strtotime($Date. ' + 1 day'))</pre> <p>Mais cela me renvoie la date <em>avant </em><code>$Date</code>. </p> <p>Existe-t-il un moyen correct d'obtenir mes dates au format « A-m-d » afin qu'elles puissent être utilisées dans une autre requête ? </p>
P粉741678385P粉741678385581 Il y a quelques jours603

répondre à tous(2)je répondrai

  • P粉393030917

    P粉3930309172023-08-21 13:28:25

    Si vous utilisez PHP 5.3, vous pouvez utiliser la méthode DateTime对象及其add :

    $Date1 = '2010-09-17';
    $date = new DateTime($Date1);
    $date->add(new DateInterval('P1D')); // P1D表示1天的时间段
    $Date2 = $date->format('Y-m-d');

    Consultez la page de manuel du constructeur DateInterval DateInterval构造函数手册页面,了解如何构造其他时间段以添加到您的日期(例如2天为'P2D',3天为'P3D' pour savoir comment construire d'autres périodes de temps à ajouter à votre date (par exemple, 2 jours pour 'P2D', 3 jours pour 'P3D', etc.).

    Si vous n'avez pas PHP 5.3, vous devriez pouvoir l'utiliser comme avant strtotime (je l'ai testé et il fonctionne aussi bien en 5.1.6 qu'en 5.2.10) :

    $Date1 = '2010-09-17';
    $Date2 = date('Y-m-d', strtotime($Date1 . " + 1 day"));
    // var_dump($Date2)返回"2010-09-18"

    répondre
    0
  • P粉258788831

    P粉2587888312023-08-21 09:02:28

    Il vous suffit d'utiliser days而不是day comme ceci :

    <?php
    $Date = "2010-09-17";
    echo date('Y-m-d', strtotime($Date. ' + 1 days'));
    echo date('Y-m-d', strtotime($Date. ' + 2 days'));
    ?>

    Il affichera correctement :

    2010-09-18
    2010-09-19

    répondre
    0
  • Annulerrépondre