Laravel Carbon设置语言环境不适用

时间:2018-12-10 16:16:23

标签: php laravel datetime locale

我在laravel项目中用法语返回日期时遇到问题

在我的模型中,我有以下方法:

public function getShowDateAttribute()
{
    Carbon::setLocale('fr_FR');
    return Carbon::parse($this->conference_date)->format('D d F Y');
}

但是日期仍然是英文,

我也尝试过

setLocale(LC_TIME,'fr_FR'); 

但是日期仍然是英文。 我还尝试过使用php date函数和Carbon的localizedFormat方法,但始终使用相同的结果:英文日期,

您对这个问题有什么想法吗? (我使用语言环境-a进行检查,并且计算机上有fr_FR可用)

谢谢

3 个答案:

答案 0 :(得分:1)

使用全球本地化格式翻译碳日期

测试:Laravel 5.8、Laravel 6、Laravel 8


在 config/app.php

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

然后,要使语言环境输出执行以下操作:

// 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"

有关转换本地化日期的更多信息,您可以在以下链接中查看 https://carbon.nesbot.com/docs/#api-localization

答案 1 :(得分:0)

仅在设置区域设置时使用fr。其他看起来不错

Carbon::setLocale('fr');

答案 2 :(得分:0)

因此,这是使用Carbon处理国际化的新推荐方法。

 $date = Carbon::now()->locale('fr_FR');

 echo $date->locale();            // fr_FR
 echo $date->diffForHumans();     // il y a quelques secondes
 echo $date->monthName;           // décembre
 echo $date->isoFormat('LLLL');   // undi 10 décembre 2018 16:20

For more help go here