【问题标题】:increment the date [duplicate]增加日期[重复]
【发布时间】:2011-12-01 11:17:48
【问题描述】:

可能重复:
Simplest way to increment a date in PHP?

我对 php 很陌生。我有当前日期,我想每天增加日期。我没有任何结束条件。我想将日期每天增加 4 年左右。不应该有一个结局。 我没有任何其他数据,例如结束日期、开始日期。我想使用任何循环一一递增当前日期。如果有人知道请帮助我。

【问题讨论】:

  • 请在向 StackOverflow 乱扔多余的重复项之前使用搜索功能。如何增加日期已经被问过一百次了,我们不想再问这些问题了。

标签: php


【解决方案1】:
$i = 1;
while (your condition here)
{
   echo date('Y-m-d', strtotime('+' . $i++ . ' day'));
}

【讨论】:

    【解决方案2】:

    如您所见,有多种方法可以将一天添加到当前日期。其他答案更简单也很有效,但面向对象的方式是使用DateTime::add

    <?php
    $date = new DateTime();
    $date->add(new DateInterval('P1D'));
    echo $date->format('Y-m-d') . "\n";
    ?>
    

    乍一看似乎令人生畏,但我发现DateTime, DateInterval, and DateTimeZone 的好处是让时区和时间间隔的古怪变得更容易处理。

    【讨论】:

      【解决方案3】:

      一天是 86400 秒,所以你可以简单地取当前的time() 并做+86400

      echo 'Tomorrow it\'s '.date('d-m-Y', time()+86400);
      

      【讨论】:

      • 直到你到达夏令时,突然之间明天仍然是今天
      • 这就是为什么你应该总是尝试使用中午 :-) 不过你说得很好
      【解决方案4】:

      您可以为此使用函数strtotime,如下所示:

      for ($i= 1; $i < 10; $i++) {
          $date = strtotime("+$i day", strtotime("2011-12-01"));
          echo date("Y-m-d", $date);
      }
      

      【讨论】:

      • 非常感谢。它的想法非常好。对初学者很有帮助。
      【解决方案5】:

      试试 mktime()。 4年后的当前日期请参考以下示例。

         echo date('m-d-Y',  mktime(0, 0, 0, date('m'), date('d'), date('Y')+4));
      

      更多关于 mktime() 的细节在这里http://php.net/manual/en/function.mktime.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-30
        • 2019-08-08
        • 2019-03-12
        • 2011-07-05
        • 2015-06-28
        • 1970-01-01
        • 2021-10-06
        • 1970-01-01
        相关资源
        最近更新 更多