【发布时间】:2017-11-29 10:16:12
【问题描述】:
我正在使用 DatePeriod 来获取循环计费系统的循环日期列表。
代码示例:
$time = new DateTime(date('Y-m-d', 1496185200));
$interval = new DateInterval('P1M');
$occ = 3;
$period = new DatePeriod($time, $interval, $occ);
foreach($period as $d)
{
echo $d->format('d/m/Y H:i').'<br>';
}
输出:
31/05/2017 00:00
01/07/2017 00:00
01/08/2017 00:00
01/09/2017 00:00
如果交易是在 5 月 31 日购买的,则 DatePeriod 方法将迭代到 7 月 1 日作为下一个有效日期(不是 6 月 31 日),但是,我需要持续日期返回到 8 月 31 日等等
所以输出将是:
31/05/2017 00:00 (June payment)
01/07/2017 00:00 (July payment)
31/07/2017 00:00 (August payment)
31/08/2017 00:00 (September payment)
01/10/2017 00:00 (October payment)
31/10/2017 00:00 (November payment)
01/12/2017 00:00 (December payment)
31/12/2017 00:00 (January payment)
我正在努力计算如何确保付款日期是下一个有效日期。如果日期无效,则无法在预定日期之前进行付款,类似于直接借记。
【问题讨论】:
-
如果你一直使用当月的最后一天会容易很多,而不是像 如果一个月有 31 天就使用最后一天,否则使用第一天下个月的.
标签: php date recursion subscription