Php Heroku上生产的Laravel应用程序中日期的区域设置错误
我在Heroku上托管的Laravel应用程序中的日期区域设置有问题 在blade文件中,我显示的日期值如下:Php Heroku上生产的Laravel应用程序中日期的区域设置错误,php,laravel,laravel-blade,php-carbon,Php,Laravel,Laravel Blade,Php Carbon,我在Heroku上托管的Laravel应用程序中的日期区域设置有问题 在blade文件中,我显示的日期值如下: {{ $user->dateBirth? Carbon\Carbon::parse($user->dateBirth)->formatLocalized('%d/%b/%Y') : ''}} 我已在AppServiceProvider中设置了区域设置: public function boot(Charts $charts){ Carbon::setLoc
{{ $user->dateBirth? Carbon\Carbon::parse($user->dateBirth)->formatLocalized('%d/%b/%Y') : ''}}
我已在AppServiceProvider中设置了区域设置:
public function boot(Charts $charts){
Carbon::setLocale('it');
setlocale(LC_TIME, 'it_IT', 'it', 'IT', 'Italian', 'it_IT.UTF-8');
}
我想在IT区域设置中显示月份,如23/Gen/2021,在我的本地主机上这很好,但在Heroku上的生产中显示的值是23/Jan/2021
如何解决此问题?请尝试在
config/app.php
中更改以下变量,而不要这样做:
'timezone' => 'Europe/Rome',
'locale' => 'it',
这仅仅意味着Heroku没有在操作系统上安装
It
locale,因此LC\u TIME
将不起作用,而且formatLocalized
也不起作用。希望Carbon有自己的翻译版本,支持的格式比formatLocalized
(实际上依赖于安装的操作系统区域设置)更多。请参见中的->isoFormat()
我的建议是始终使用
->isoFormat()
,这样您的代码就可以在任何机器上工作,而无需额外安装/设置,并且这些代码可以自定义,这样您就可以在不影响其他机器的情况下更改碳翻译。您是否尝试过在生产环境中清除缓存?是,我已经这样做了。我已经这样做了,但不起作用。这个解决方案有效。谢谢。请注意,P.K.Tharindu在Laravel中使用'locale'=>'it'
而不是手动执行Carbon::setLocale('it')
,如果您的站点只能使用意大利语,则仍然是正确的,否则您可以调用Carbon\Carbon::parse($user->dateBirth)->locale('it')
以使用用户区域设置更改对象。对于时区,它不应该硬编码,而应该使用浏览器。
{{ $user->dateBirth ? Carbon\Carbon::parse($user->dateBirth)->isoFormat('DD/MMM/YYYY') : ''}}