【发布时间】:2021-12-24 00:08:36
【问题描述】:
我正在开发一个 Laravel 项目。我尝试使用 Carbon 创建一个 DateTime 对象。这是我尝试过的:
Carbon::createFromFormat('Y-m-d H:i:s', '2021-10-01T00:01:00')->toDateTime();
但我的 phpstan 抱怨:Cannot call method toDateTime() on Carbon\Carbon|false.
为什么会出现这个错误?将Carbon 转换为DateTime 对象的正确方法是什么?
【问题讨论】:
-
您提供的时间不是您告诉 Carbon 期望的格式。所以
createFromFormat()失败,可能返回 false。 -
@Don'tPanic 但这是 PHPStan 无法检测到的东西
-
Y-m-d H:i:s与2021-10-01T00:01:00。您的格式有空格;你的字符串有一个 T 代替。您的日期字符串与您的预期格式不符。 -
@ceejayoz 这是 PHPStan 通过静态分析无法检测到的东西
-
@NicoHaase 好吧,OP 编写的代码会引发异常。如果不出意外,他们应该先解决这个问题。
标签: php laravel php-carbon phpstan