【问题标题】:Calculate +N Monthly Cycles Starting from Any Date (Leap Years Taken into Account)计算从任何日期开始的 +N 个每月周期(考虑闰年)
【发布时间】:2012-09-05 08:59:55
【问题描述】:

我有一个随机的开始日期(例如 2012-09-19)。我想在此日期之后轻松获得结束的每月周期的日期。但是,每月的周期并不完全是 30 天,而是从日期到日期,例如9 月 19 日至 10 月 19 日。

我想轻松计算订阅开始后的第 5 个月或第 500 个月的开始日期和结束日期,同时考虑闰年。例如,如果订阅于闰年的 2 月 29 日开始,而非闰年的 2 月到来,则该期间的结束日期应为 2 月 28 日,而不会将未来的每月周期替换一天。

【问题讨论】:

    标签: php date datetime


    【解决方案1】:

    这看起来很简单,使用strtotime();

    假设初始日期是 2012-02-29。

    function addToDate($date, $add){
            if(!strtotime($date)) return FALSE;
            $date = strtotime($date);
            return strtotime($add, $date);
    }
    
    $result = addToDate('2012-02-29', '+50 months');
    echo date('Y-m-d', $result);
    

    将导致 2016-04-29。

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 2017-01-13
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      相关资源
      最近更新 更多