首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >设置下个月的付款日期(用PHP抄送)

设置下个月的付款日期(用PHP抄送)
EN

Stack Overflow用户
提问于 2018-07-12 08:47:51
回答 3查看 8K关注 0票数 7

我需要得到一个下个月付款日期正确。所以我取了最后一个到期日期,再加上一个月。我该怎么做呢?

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

代码语言:javascript
复制
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(1)

它起作用了,它提供了2018-02-28,但在那之后,下一次付款将在28号再次到期。所以我需要在添加一个月之后设置一个日期。

代码语言:javascript
复制
Carbon::create(2018, 2, 28, 0, 0, 0)->addMonthsNoOverflow(1)->day(31)

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

代码语言:javascript
复制
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonthsNoOverflow(1)->day(31)

它给了我溢出的2018-03-03。这就是我的问题。我该怎么办?有没有像->setDayNoOverflow(31)这样的东西?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-12 13:35:31

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

代码语言:javascript
复制
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)

假设你没有这个数据,你仍然可以:

代码语言:javascript
复制
$day = 31;
$date = Carbon::create(2018, 1, 28, 0, 0, 0);
$date->addMonthsNoOverflow(1);
$date->day(min($day, $date->daysInMonth));
票数 11
EN

Stack Overflow用户

发布于 2020-12-23 18:26:54

您可以将其用作循环

代码语言:javascript
复制
    // from month
    $min = 3;
    // to mont
    $max = 9;
    // all dates
    $paymentDates = [];
    $date2 = \Carbon\Carbon::now();
    // next day (or today)
    $day = $date2->addDay(1)->format('d');
    $currentMonth = $date2->format('m');
    $year = $date2->format('Y');;
    
    $date = \Carbon\Carbon::now();

    $nextMonth = $currentMonth;

    for($i = $min; $i <= $max; $i++) {
      $date = \Carbon\Carbon::create($year, $currentMonth, $day)->addMonthsNoOverflow($nextMonth)->format('d/m/Y');
      // add to array
      array_push($paymentDates, $date);
      // next month
      $nextMonth++;
    }
票数 0
EN

Stack Overflow用户

发布于 2018-07-12 14:16:50

您可以使用Carbon Library中提供的addMonth()函数,如下所示

代码语言:javascript
复制
Carbon::create(2018, 1, 31, 0, 0, 0)->addMonth();
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51295911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档