【问题标题】:Carbon add days to next monday下周一的碳增加天数
【发布时间】:2018-02-07 22:51:49
【问题描述】:

我有碳日期变量。

Carbon::parse("2018-08-01") //tuesday

我想添加天数到下一个monday ("2018-08-07")

有没有类似的命令

 Carbon->addDaysUntil("monday"); ->addMonthUntil("september")

等等。

所以我想将当前日期更改为下周、月、年的开始

【问题讨论】:

    标签: php php-carbon


    【解决方案1】:

    您可以做的是确定当前日期,获取一周的开始(星期一)并添加一周以获得下一周。

    $date = Carbon::create(2017, 8, 30);
    $monday = $date->startOfWeek();
    $mondayOneWeekLater = $date->addWeeks(1); // $date->addWeek();
    

    冲洗并重复数月和数年,但正如 Maritim 建议的那样,它在文档中。 ;-)
    来源:http://carbon.nesbot.com/docs/

    【讨论】:

      【解决方案2】:

      老问题,但目前有一个很好的方法。

      $date = Carbon::parse('2018-08-01')->next('Monday');
      

      此外,如果您想先检查您的日期是否是星期一,您可以执行以下操作:

      $date = Carbon::parse(...);
      // If $date is Monday, return $date. Otherwise, add days until next Monday.
      $date = $date->is('Monday') ? $date : $date->next('Monday');
      

      或者使用下面评论中@smknstd 建议的碳常数:

      $date = Carbon::parse(...);
      // If $date is Monday, return $date. Otherwise, add days until next Monday.
      $date = $date->is(Carbon::MONDAY) ? $date : $date->next(Carbon::MONDAY);
      

      【讨论】:

      • 感谢分享,因为在 Carbon 文档中很难找到它。我发现您可以使用 const 而不是字符串作为参数:Carbon::now()->next(Carbon::MONDAY);
      • 也可以使用 ->isMonday(): $date = $date->isMonday() 来编写? $date : $date->next(Carbon::MONDAY);
      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      相关资源
      最近更新 更多