我想用PHP计算Recurly计划的下一个开票日期。 有两种类型的结算周期:每年|每月。 我试图使用DateTime和DateInterval类,但没有得到预期的结果。PHP - 如何计算一个月或一年后
<?php
$referenceTime = new \DateTime('2016-01-31');
$oneMonthLater = $referenceTime->modify('+1 month');
var_dump($oneMonthLater);
// public 'date' => string '2016-03-02 00:00:00.000000'
1个月添加到Januray月31日给我三月份的第二个而不是29日(或28日),因为我期望的那样。
同为8月31日:
<?php
$referenceTime = new \DateTime('2016-08-31');
$oneMonthLater = $referenceTime->modify('+1 month');
var_dump($oneMonthLater);
// public 'date' => string '2016-10-01 00:00:00.000000'
如果每年,我预计2016年2月29日+1年=> 2017年2月28日
感谢。
向我们展示您迄今为止所做的工作......我们会更轻松地回答。 –
$ next_bill_date = new DateTime(); if($ plan_interval_unit =='year'){ $ interval_spec ='P'。$ plan ['plan_interval_length']。'Y'; ($ plan_interval_unit =='month'){ $ interval_spec ='P'。$ plan ['plan_interval_length']。'M'; } $ next_bill_date-> add(new DateInterval($ interval_spec)); –
请将它添加到您的问题中。难以阅读/理解在这里... :( –