Yev*_*yev 5 php laravel php-carbon
我需要正确的下个月付款日期。因此,我要考虑最后的截止日期,并在其中加上一个月。我该怎么做?
我的例子是:上次付款是Januarry的31号,我在做
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(1)
Run Code Online (Sandbox Code Playgroud)
它可以正常工作,但是给定了,2018-02-28
但是下一次付款将在28日再次到期。因此,我需要在添加一个月后设置一个日期。
Carbon::create(2018, 2, 28, 0, 0, 0)->addMonthsNoOverflow(1)->day(31)
Run Code Online (Sandbox Code Playgroud)
它给我2018-03-31
带来的好处,但是如果我在第一个示例中使用此公式
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(1)->day(31)
Run Code Online (Sandbox Code Playgroud)
它给我溢出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)
Run Code Online (Sandbox Code Playgroud)
假设您没有此数据,您仍然可以:
$day = 31;
$date = Carbon::create(2018, 1, 28, 0, 0, 0);
$date->addMonthsNoOverflow(1);
$date->day(min($day, $date->daysInMonth));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2426 次 |
最近记录: |