How to set language for Carbon?

2019-06-23 19:21发布

问题:

So i want to set language for Carbon, but i always get same result.

  Carbon::setLocale('es');
$archive_current_year = Articles::whereBetween('created_at', [
    Carbon::now()->startOfYear(),
    Carbon::now()->endOfYear(),
  ])->get()->groupBy(function($item) {
    return $item->created_at->format('F');
  });

回答1:

try using PHP function setlocale also check if your hosting allows and gives you the locales you want.

 setlocale(LC_TIME, 'es_ES');
 Carbon::setLocale('es');
 $archive_current_year = Articles::whereBetween('created_at', [
 ....


回答2:

Carbon is actually using the php setlocale();. The Carbon::setLocale('es') method is only for localized Carbon methods like ->diffForHumans() method.

As explained here, notice that the php setlocale() reference to the locale stored on your OS. To choose one of the installed one, type locale -a on your console. Secondly, you will have to use ->formatLocalized() method instead of ->format() in order to use the format on the desired locale which can be found at the following link.

http://php.net/manual/en/function.strftime.php