【问题标题】:add day to current date将日期添加到当前日期
【发布时间】:2010-10-12 20:18:41
【问题描述】:

添加一个日期,这样我就可以将明天的日期存储在一个变量中。

$tomorrow = date("Y-m-d")+86400;

我忘了。

【问题讨论】:

    标签: php date


    【解决方案1】:

    date()返回一个字符串,所以给它加上一个整数是不行的。

    首先构建你的明天时间戳,使用strtotime 不仅干净而且更准确(参见 Pekka 的评论):

    $tomorrow_timestamp = strtotime("+ 1 day");
    

    然后,将其用作date 调用的第二个参数:

    $tomorrow_date = date("Y-m-d", $tomorrow_timestamp);
    

    或者,如果你的心情超级紧凑,这一切都可以推入

    $tomorrow = date("Y-m-d", strtotime("+ 1 day"));
    

    【讨论】:

    • +1 但更好的构建时间戳的方法是 strtotime("+ 1 day"); 因为 DST
    【解决方案2】:

    我鼓励您探索 PHP 5.3 DateTime 类。它使日期和时间更容易处理:

    $tomorrow = new DateTime('tomorrow');
    
    // e.g. echo 2010-10-13
    echo $tomorrow->format('d-m-Y');
    

    此外,您可以将+ 1 day 语法与任何日期一起使用:

    $xmasDay = new DateTime('2010-12-24 + 1 day');
    echo $xmasDay->format('Y-m-d'); // 2010-12-25
    

    【讨论】:

      【解决方案3】:

      date 返回一个字符串,而您希望将 86400 秒添加到时间戳。我想你正在寻找这个:

      $tomorrow = date("Y-m-d", time() + 86400);
      

      【讨论】:

      • 确实,由于夏令时,这将失败。你永远不应该这样写算术。
      • 同意这不考虑夏令时。我只是根据 OP 想要做什么来回答,这是否真的是他想要的由他来决定。
      • @Matchu 下面的答案至少应该是公认的答案。
      【解决方案4】:

      很好很明显:

      $tomorrow = strtotime('tomorrow');
      

      【讨论】:

      • 整洁,但目前的形式似乎不符合 OP 的要求:/ 添加 date 调用,我们很高兴。
      【解决方案5】:

      您可以使用add 方法datetime 类。 例如,您想在当前日期和时间上增加一天。

      $today = new DateTime();
      $today->add(new DateInterval('P1D'));
      

      进一步参考php datetime add

      希望这会有所帮助。

      【讨论】:

        【解决方案6】:

        我发现mktime() 对这类事情最有用。例如:

        $tomorrow=date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+1, date("Y")));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-11-11
          • 1970-01-01
          • 1970-01-01
          • 2012-04-16
          • 2014-05-25
          • 2020-02-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多