php - 设置没有溢出的日期(使用 PHP Carbon)

标签 php laravel php-carbon

我使用 Carbon(PHP 库)将日期设置为日期。但我希望它不会到下个月,而是停止和月底。
例子:

Carbon::create(2018, 2, 27, 0, 0, 0)->day(31);

我越来越

2018-03-03 00:00:00



但是我需要

2018-02-28 00:00:00



当您经营几个月Carbon给您->subMonthsNoOverflow()和 - >addMonthsNoOverflow()这真的很有帮助,但没有像这样设置一天的东西。

最佳答案

从 Carbon 2.0 开始,他们添加了一个方法 setUnitNoOverflow($unit, $value, $overflowUnit)但它仍然没有记录。

我设法通过这样做获得了 2019-02-28

Carbon::parse('2019-02-01')->setUnitNoOverflow('day', 31, 'month')->format('Y-m-d')

 Carbon\Carbon @1551398399 {#3013
     date: 2019-02-28 23:59:59.999999 UTC (+00:00),
   }

或者,您可以使用 addUnitNoOverflowsubUnitNoOverflow
Issue github ——
Source

关于php - 设置没有溢出的日期(使用 PHP Carbon),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51295845/

相关文章:

laravel-5 - 基于时区的碳对象到 Unix 时间戳

PHP:使用 GD 库时图像上出现黑条

php - 管理不同用户的时间偏移?

php - 数据透视中的自动增量而不是行数

datetime - 使用 Laravel 5 中的日期修改器将检索到的日期时间数据转换为用户时区

php - Eloquent - 按天获取记录

PHP JSON 特殊字符

php - 如何从一条 laravel 路由获取返回值到另一条路由

php - laravel 中所有响应中的未知元标记

使用存储库和 phpspec 中的关系测试 Laravel 模型