【问题标题】:PHP - add 1 day to date format mm-dd-yyyyPHP - 添加 1 天日期格式 mm-dd-yyyy
【发布时间】:2013-04-07 18:30:16
【问题描述】:
<?php
    $date = "04-15-2013";
    $date = strtotime($date);
    $date = strtotime("+1 day", $date);
    echo date('m-d-Y', $date);
?>

这让我发疯,看起来很简单。我对 PHP 很陌生,但我无法弄清楚这一点。回显返回01-01-1970

$date 将来自 POST,格式为 m-d-Y,我需要添加一天并将其作为新变量以供以后使用。

我是否必须将 $date 转换为 Y-m-d,添加 1 天,然后再转换回 m-d-Y? 学习如何使用DateTime会更好吗?

【问题讨论】:

  • 如果您的日期来自POST,那么您最好在数据收集脚本中使用$tomorrow = date('m-d-Y',strtotime("+1 days"));(法比奥的回答)和$tomorrow = $_POST[$tomorrow];

标签: php date


【解决方案1】:

试试下面的代码:

<?php
   $date = "2022-01-05";
   $to_date = date('Y-m-d', strtotime($date.' +1 day')); 
   echo $to_date;
?>

Output:

2022-01-06

【讨论】:

    【解决方案2】:
    $date = strtotime("+1 day");
    echo date('m-d-y',$date);
    

    【讨论】:

      【解决方案3】:

      其实我也想要同样的东西, 对于给定的日期,要获得向后一年的日期! :-)

      在@mohammad mohsenipur 的上述答案的提示下 我通过他给定的链接访问了以下link

      幸运的是,还有一个与 date_add 方法相同的方法,名为 date_sub 方法! :-) 我执行以下操作以完成我想要的!

      $date = date_create('2000-01-01');
      date_sub($date, date_interval_create_from_date_string('1 years'));
      echo date_format($date, 'Y-m-d');
      

      希望这个答案也能帮助别人! :-)

      祝大家好运!

      【讨论】:

        【解决方案4】:
        $date = DateTime::createFromFormat('m-d-Y', '04-15-2013');
        $date->modify('+1 day');
        echo $date->format('m-d-Y');
        

        See it in action

        或者在 PHP 5.4+ 中

        echo (DateTime::createFromFormat('m-d-Y', '04-15-2013'))->modify('+1 day')->format('m-d-Y');
        

        参考

        【讨论】:

          【解决方案5】:

          你来了

          $date = "04-15-2013";
          $date1 = str_replace('-', '/', $date);
          $tomorrow = date('m-d-Y',strtotime($date1 . "+1 days"));
          
          echo $tomorrow;
          

          这将输出

          04-16-2013
          

          两个函数的文档
          date
          strtotime

          【讨论】:

          • 完美!我不知道它不会识别'-'。将其全部更改为“/”没有问题。谢谢!
          【解决方案6】:

          http://www.php.net/manual/en/datetime.add.php点赞

          $date = date_create('2000-01-01');
          date_add($date, date_interval_create_from_date_string('1 days'));
          echo date_format($date, 'Y-m-d');
          

          输出

          2000-01-2
          

          【讨论】:

            【解决方案7】:

            strtotime() 无法识别您使用的格式。替换

            $date = "04-15-2013";
            

            $date = "04/15/2013";
            

            或者如果你想使用-,那么使用下面的行,前面的年份:

            $date = "2013-04-15";
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-01-28
              • 2016-01-02
              • 1970-01-01
              • 2012-05-05
              • 1970-01-01
              • 2013-03-18
              • 1970-01-01
              相关资源
              最近更新 更多