【发布时间】:2020-12-23 18:26:53
【问题描述】:
我需要确定下个月的付款日期。所以我选择最后一个截止日期 并增加一个月。我该怎么做?
我的例子是:最后一次付款是 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) 的东西?
【问题讨论】:
-
哦,这很棘手。您可以使用
->endOfMonth()作为您的示例,但我仍然建议您将月份计为 30 天。添加简单,计算简单,您和客户都无需费脑筋:) -
我希望我有权做出这样的决定。
-
@JohnConde,谢谢。回答的真好,这里也可以用。
标签: php laravel php-carbon