【问题标题】:Add Days in format d/m/Y以 d/m/Y 格式添加天数
【发布时间】:2017-02-24 09:25:53
【问题描述】:

我想怎么加天,我试试这个

$start = '06/07/2017'
echo $start;
echo "<br>";
echo date('d/m/Y', strtotime(' + 1 days', strtotime($start)));

但是返回这个

06/07/2017
08/06/2017

有什么问题?

【问题讨论】:

标签: php date days


【解决方案1】:

试试这个,

<?php
$start = '06/07/2017';
echo $start;
$start = str_replace("/","-",$start);
echo "<br>";
echo date("d/m/y", strtotime(date('d-m-Y', strtotime(' + 1 days', strtotime($start)))));

注意:m/d/y 或 d-m-y 格式的日期可以通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜线 (/),那么美式 m/d/y 是假定;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 d-m-y 格式。但是,如果年份以两位数格式给出并且分隔符是破折号(-,则日期字符串被解析为 y-m-d。

来源link

【讨论】:

    【解决方案2】:
    <?php
    //old code
    $str = '06/07/2017';
    $date = DateTime::createFromFormat('d/m/Y', $str);
    $start_old =  $date->format('d-m-Y'); 
    echo   date('d/m/Y', strtotime($start_old . ' +1 day'));
    echo "<br>";
    //new updated code
    $start = '06/07/2017';
    echo DateTime::createFromFormat('d/m/Y', $start)
        ->add(new DateInterval('P1D'))
        ->format('d/m/Y');
    ?>
    

    使用DateTime

    fiddle

    【讨论】:

    • 最好使用dateTime::add()dateTime::format(),因为您已经将日期字符串传递给DateTime 对象。
    • 你可以改进我的回答@CD001
    • 希望没关系;)
    • 它正在工作@CD001
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多