我在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可用)
谢谢
答案 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