【问题标题】:Getting php to properly add days to date让 php 正确添加日期
【发布时间】:2016-05-09 03:09:01
【问题描述】:

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

我很熟悉将天数添加到当前日期,例如:

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

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

【问题讨论】:

    标签: php date date-math


    【解决方案1】:

    使用DateTime():

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

    【讨论】:

    • 虽然下个月的到期日不是 2016-05-08,但我可以在 DateTimeImmutable 中放置一个变量来代替实际日期吗?
    • @MDavid 是的,当然可以。 $foo='2016-05-08'; $dueDate = new DateTimeImmutable($foo);
    • 甜蜜!现在试试这个,如果它有效,会告诉你。
    • 嗯,我运气不好。我不断收到错误,在输入数据库时​​无法将其转换为字符串
    【解决方案2】:

    试试这个:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 2015-07-17
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多