gpt4 book ai didi

php - 设置下个月的付款日期(使用 PHP Carbon)

转载 作者:可可西里 更新时间:2023-10-31 23:00:55 24 4
gpt4 key购买 nike

我需要确定下个月的付款日期。所以我选择最后的截止日期并增加一个月。我该怎么做?

我的例子是:最后一次付款是 1 月 31 日,我正在做

Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(1)

它有效,它给出 2018-02-28 但之后下一次付款将再次在 28 日到期。所以我需要在添加一个月后设置一个日期。

Carbon::create(2018, 2, 28, 0, 0, 0)->addMonthsNoOverflow(1)->day(31)

它给了我 2018-03-31 这很好但是如果我在第一个例子中使用这个公式

Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(1)->day(31)

它让我溢出 2018-03-03。这是我的问题。我应该怎么办?是否有类似 ->setDayNoOverflow(31) 的东西?

最佳答案

您不应该使用最后一个付款日期,而是保留第一个日期并从第一个而不是前一个开始计算所有其他日期:

Carbon::create(2018, 1, 31, 0, 0, 0)
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(1)
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(2)
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(3)

假设您没有这些数据,您仍然可以:

$day = 31;
$date = Carbon::create(2018, 1, 28, 0, 0, 0);
$date->addMonthsNoOverflow(1);
$date->day(min($day, $date->daysInMonth));

关于php - 设置下个月的付款日期(使用 PHP Carbon),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51295911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com