【问题标题】:Need to add weeks, days and months in a date for a package subscription需要在包订阅的日期中添加周、日和月
【发布时间】:2012-10-20 12:29:01
【问题描述】:

我目前正在为我当前的项目开发包管理器,我需要添加包订阅日期和包到期日期。

我正在使用 php 函数 date("Y-m-d H:i:s")

$package_subscription_start_date = date("Y-m-d H:i:s");

现在这是我的要求: 我需要有 1 天、2 天、5 天、1 周、4 周、12 周、1 个月、6 个月、9 个月、1 年、2 年、5 年和 10 年的套餐。

我如何添加这些值并计算插入 mysql 的包到期日期,类似于

$package_expiry_date = date("Y-m-d H:i:s") + 1 day;
$package_expiry_date = date("Y-m-d H:i:s") + 5 days;
$package_expiry_date = date("Y-m-d H:i:s") + 1 week;
$package_expiry_date = date("Y-m-d H:i:s") + 4 weeks;
$package_expiry_date = date("Y-m-d H:i:s") + 2 months;

$package_expiry_date = date("Y-m-d H:i:s") + 2 years;

最后我需要处理其他日期问题,例如有效日期和闰年等。 我也需要在 php 级别完成此操作,而不是使用 mysql / sql 查询。

我将不胜感激这方面的任何帮助。

【问题讨论】:

    标签: php datetime


    【解决方案1】:

    类似

    $date=date('Y-m-d H:i:s', strtotime('+1 day'));
    $date=date('Y-m-d H:i:s', strtotime('+5 days'));
    $date=date('Y-m-d H:i:s', strtotime('+1 week'));
    $date=date('Y-m-d H:i:s', strtotime('+4 weeks'));
    $date=date('Y-m-d H:i:s', strtotime('+2 months'));
    $date=date('Y-m-d H:i:s', strtotime('+2 years'));
    

    【讨论】:

      【解决方案2】:

      你试过php中的strtotime()命令吗?

      echo $expires = strtotime(date("Y-m-d H:i:s")." + 1 day");
      echo date("Y-m-d H:i:s", $expires);
      

      给你输出

      135082420020
      12-10-21 08:56:40
      

      【讨论】:

      • 你不需要在strtotime的调用中格式化开始日期;如果是当前日期,您可以忽略它:$expires = strtotime('+ 1 day')。当然,此时您可以完全删除中间变量并获得@fortune 的答案。
      • 谢谢马克。我知道这一点,只是试图给 OP 一个包含他自己代码的一部分的答案,以便他更容易理解。再次感谢。
      【解决方案3】:

      看看 php DateTime 对象。

      例如在日期上添加时间:

      //Get the current date
      $date = new DateTime();
      
      //Add 1 day
      $date->modify('+1 Day');
      
      //Output in Y-m-d format
      echo $date->format('Y-m-d');
      

      它还有很多其他有用的功能

      【讨论】:

      • 感谢 wayneC 抽出时间回答我的问题。我真的很感激。
      【解决方案4】:
      <?php
          echo $date = date("Y-m-d");// current da
      
          $date1 = strtotime(date("Y-m-d", strtotime($date)) . " +1 day");
          echo date("Y-m-d", $date1);
          echo date("Y-m-d", $date1);
      
          $date2 = strtotime(date("Y-m-d", strtotime($date)) . " +1 week");
          echo date("Y-m-d", $date2);
      
          $date3 = strtotime(date("Y-m-d", strtotime($date)) . " +2 week");
          echo date("Y-m-d", $date3);
      
          $date4 = strtotime(date("Y-m-d", strtotime($date)) . " +1 month");
          echo date("Y-m-d", $date4);
      
          $date5 = strtotime(date("Y-m-d", strtotime($date)) . " +1 year");
          echo date("Y-m-d", $date5);
      ?>
      

      【讨论】:

        猜你喜欢
        • 2021-12-08
        • 1970-01-01
        • 2010-11-12
        • 2017-02-05
        • 2019-01-03
        • 2015-05-20
        • 2019-07-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多