【问题标题】:PHP get 31 days distance from starting datePHP从开始日期获得31天的距离
【发布时间】:2010-10-07 16:57:32
【问题描述】:

我如何获得从 $startDate 开始的 31 天后的日期,其中 $startDate 是这样格式的字符串:YYYYMMDD。

谢谢。

【问题讨论】:

    标签: php date get days


    【解决方案1】:

    strtotime 会给你一个 Unix 时间戳:

    $date = '20101007';
    $newDate = strtotime($date.' + 31 days');
    

    如果需要,您可以使用date 将其格式化为相同的格式:

    echo date('Ymd', $newDate);
    

    【讨论】:

    • 谢谢你,蒂姆。这是这样做的“最佳”方式吗?我有点担心+31 days 部分。
    • 您只需要注意$date 的格式;如果您将其保留为标准格式,那很好 - 如果您尝试解析任意格式(例如 dd/mm/yyyy 与 mm/dd/yyyy),您可能会遇到问题。选择一个,确保它有效,然后对您使用的所有日期强制执行该格式。
    【解决方案2】:

    如果您使用的是 PHP 5.3:

    $date = new DateTime('20101007');
    $date->add(new DateInterval('P31D'));
    echo $date->format('Y-m-d');
    

    至少可以说缺少 5.3 之前的日期功能。 DateTime 的东西使处理日期变得更加容易。 http://us3.php.net/manual/en/book.datetime.php

    【讨论】:

    • 在 $date->add(new DateInterval('P31D')) 结束时还需要一个 ')';
    【解决方案3】:

    请注意,如果您希望下个月的日期相同,而不是每次都正好是 31 天,+1 个月也可以。

    【讨论】:

      【解决方案4】:
      echo date('Y m d',strtotime('+31 Days'));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-21
        相关资源
        最近更新 更多