Carbon formatLocalized在Blade中不起作用

时间:2016-12-20 23:12:58

标签: php laravel-5.3 php-carbon

在Blade视图中,我有这段代码

roots

这不起作用,它会返回:

{{ \Carbon\Carbon::setLocale("es") }}
 {{ $registro->fecha_desde->format("l j F Y") }}<br />
 {{ $registro->fecha_desde->formatLocalized("%A %d %B %Y") }}<br />
 {{ $registro->fecha_desde->diffForHumans() }}

因此,format()和formatLocalized始终以英文格式返回日期。 diffForHumans返回本地化的日期(在本例中为西班牙语)。

我错过了什么吗?不能相信“Carbon的格式本地化”并没有返回本地化的格式化日期......

4 个答案:

答案 0 :(得分:3)

我发现了两种用其他语言输出日期的方法。将此添加到AppServiceProvider

    Carbon::setLocale('es');
    setlocale(LC_TIME,'es_ES');

//This output dates in spanish

在App.php中,将“ es”代替“ en”。现在您可以使用FormatLocalized,并且所有Carbon函数都将使用您在setLocale中分配的语言。

注意:如果您使用的是Oracle DB,请添加:

 setlocale(LC_TIME, config('app.locale'));

相反:

setlocale(LC_TIME,'es_ES');

答案 1 :(得分:1)

找到它。 问题是\ Carbon :: setlocale()

这看起来很难看但有效:

{{ setlocale(LC_ALL, 'es_MX', 'es', 'ES') }}
{{ $registro->fecha_desde->formatLocalized("%A %d %B %Y") }}

输出:

es viernes 30 diciembre 2016

答案 2 :(得分:0)

要查看带有其他重音的格式,您必须在格式化之前启用UTF8编码:

\Carbon::setUTF8(true);

答案 3 :(得分:0)

打开AppServiceProvider.php 调用碳use Carbon\Carbon;

public function boot()
{
  Carbon::setUTF8(true);
  Carbon::setLocale(config('app.locale'));
  setlocale(LC_TIME, config('app.locale'));
}

config文件夹中打开app.php

设置'locale' => 'es',

on ubuntu

public function boot()
{
   Carbon::setUTF8(true);
   Carbon::setLocale(config('app.locale'));
   setlocale(LC_TIME,'');
}