Reputation: 4065
In a Blade view I have this code
{{ \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() }}
This does not work, it returns:
Friday 30 December 2016
Friday 30 December 2016
dentro de 1 semana
So, format() and formatLocalized always returns the date in english format. diffForHumans returns the date localized (in spanish in this case).
Am I missing something? cant believe "Carbon's formatLocalized" is not returning localized formated dates....
Upvotes: 5
Views: 20003
Reputation: 4294
Nowadays it's better to use ->isoFormat('dddd DD MMMM YYYY') instead of ->formatLocalized('%A %d %B %Y') because formatLocalized() is deprecated.
So it can look like this:
{{ setlocale(LC_ALL, 'es_MX', 'es', 'ES') }}
{{ $registro->fecha_desde->isoFormat('dddd DD MMMM YYYY') }}
Upvotes: 0
Reputation: 119
I found two ways to output dates in other language. add this in the AppServiceProvider
Carbon::setLocale('es');
setlocale(LC_TIME,'es_ES');
//This output dates in spanish
In App.php put 'es' instead 'en'. now you can use FormatLocalized and all Carbon Functions will be in the language that you assign in setLocale.
Note: If you're using Oracle DB add:
setlocale(LC_TIME, config('app.locale'));
instead:
setlocale(LC_TIME,'es_ES');
Upvotes: 7
Reputation: 2514
Open AppServiceProvider.php
Call class of carbon use Carbon\Carbon;
public function boot()
{
Carbon::setUTF8(true);
Carbon::setLocale(config('app.locale'));
setlocale(LC_TIME, config('app.locale'));
}
in the config
folder open app.php
set 'locale' => 'es',
on ubuntu
public function boot()
{
Carbon::setUTF8(true);
Carbon::setLocale(config('app.locale'));
setlocale(LC_TIME,'');
}
Upvotes: 2
Reputation: 12594
to view formats with additional accents, you have to enable UTF8 encoding, before formatting:
\Carbon::setUTF8(true);
Upvotes: 0
Reputation: 4065
Found it. The problems is \Carbon::setlocale()
This looks ugly but works:
{{ setlocale(LC_ALL, 'es_MX', 'es', 'ES') }}
{{ $registro->fecha_desde->formatLocalized("%A %d %B %Y") }}
Output:
es viernes 30 diciembre 2016
Upvotes: 5