Carbon :: isoFormat不存在

时间:2018-11-05 10:27:10

标签: php laravel datetime datetime-format php-carbon

因为laravel使用now()作为Carbon类的辅助函数,所以我尝试了

dd(now('GMT+5:45')->isoFormat('x')))

但它返回laravel的错误方法调用异常,说

Illuminate\Support\Carbon::isoFormat does not exist.

我想要的只是将日期和时间转换为time string,就像strtotime()函数

我现在该做什么?

2 个答案:

答案 0 :(得分:0)

似乎您使用的Laravel版本低于5.8,其中包含 Carbon 1 ,因此{strong>不包含isoFormat() ,因为它是碳2 的一部分。

因此,您可以选择使用formatLocalized(),但是请注意,它使用的是different放置方式,然后是isoFormat()

我对您的建议是,如果您想使用Laravel 5.8,请升级到isoFormat()

如果您想坚持使用当前的Laravel版本并继续使用formatLocalized(),则需要执行以下操作:

  1. 在您的一个服务提供商中,假设AppServiceProvider,在您的register()中添加:Carbon::setLocale($this->app->getLocale());这将本地化->diffForHumans()
  2. 通过设置php setLocal()来帮助Carbon,它将使用计算机中已安装的Locales来确保您的操作系统(Linux / Mac)已安装所需的本地语言:您可以通过输入{{ 1}}(如果未显示),然后运行:locale -a,将出现一个简单的GUI,通过点击 sapce 按钮然后选择 enter 来选择所需的本地。然后是语言环境。
  3. 如果您刚刚安装了所需的语言环境,请请确保重新启动php-fpm服务: sudo dpkg-reconfigure locales
  4. 在您的情况下,请使用本地化方法:systemctl restart php7.3-fpm.service。例如:->formatLocalized()

答案 1 :(得分:-2)

您可以使用format()中的Carbon功能。

now('GMT+5:45')->format('y-m-d');

'y-m-d'可以替换为您可以看到的here格式。

编辑: 或者,如果您想使用isoFormat()

您可以使用Carbon::now()代替now()

Carbon\Carbon::now()->isoFormat();

发生此问题是因为now()是Laravel帮助者,并且它返回Illuminate\Support\Carbon