Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Carbon setLocale not working Laravel

Ive read several stackoverflows about set locale. I tested locale -a in the terminal to see if my locale was in there, and it was. The following rule of code is added in the appServiceProvider:

public function boot()
{
    Carbon::setLocale($this->app->getLocale());
}

The $this->app->getLocale() returns "nl"

Anyone know why Carbon still shows Sunday instead of Zondag for example?

like image 332
Nick Audenaerde Avatar asked Nov 29 '22 13:11

Nick Audenaerde


2 Answers

You might want to use setLocale(LC_TIME, $this->app->getLocale()) somewhere at the start of your application.

Then if you wish to have the localized date format with local names use the formatLocalized function

Carbon::now()->formatLocalized('%d %B %Y');

See http://php.net/manual/en/function.strftime.php for parameter for formatting

like image 42
Tschallacka Avatar answered Feb 26 '23 17:02

Tschallacka


Translating a carbon date using global localized format

Tested in: Laravel 5.8, Laravel 6, Laravel 8


In config/app.php

'locale' => 'id', // The default is 'en', but this time I want localize them to Indonesian (ID)

Then, to make locale output do something like this:

// WITHOUT LOCALE
Carbon\Carbon::parse('2019-03-01')->format('d F Y'); //Output: "01 March 2019"
now()->subMinute(5)->diffForHumans(); // Output: "5 minutes ago"

// WITH LOCALE
Carbon\Carbon::parse('2019-03-01')->translatedFormat('d F Y'); // Output: "01 Maret 2019"
now()->subMinute(5)->diffForHumans(); // Output: "5 menit yang lalu"

For more information about converting localize dates you can see on below link https://carbon.nesbot.com/docs/#api-localization

like image 90
Robby Alvian Jaya Mulia Avatar answered Feb 26 '23 17:02

Robby Alvian Jaya Mulia