让 php 正确添加天数

Getting php to properly add days to date

我有一个发票系统,可以在发票支付后生成下一个到期日。但我的问题是我想根据上一张发票的到期日期而不是付款时间生成下一张发票。

我熟悉在当前日期中添加天数,例如:

$nextduedate = date('Y-m-d', strtotime("+30 days"));

假设发票于 2016 年 5 月 8 日到期,但已于 2016 年 5 月 12 日支付 我如何让系统将 30 天添加到从数据库中提取的变量 $dueDate 并将下一张发票的到期日期设置为距之前的 30 天?

使用DateTime():

$dueDate = new DateTimeImmutable('2016-05-08');
$nextInvoice = $dueDate->modify('+30 days');
echo $nextInvoice->format('Y-m-d');

试试这个:

$nextduedate = ('Y-m-d', strtotime($duedate. ' + 30 days'));

这将格式化您的日期,然后将 30 天添加到存储在变量中的旧截止日期。