举个例子:
{{ $article->created_at->format('M') }}
Run Code Online (Sandbox Code Playgroud)
它回来了Nov.我需要将它本地化为我的语言,所以输出应该是Kas
考虑做以下事情:
{{ trans("language.{$article->created_at->format('M')}") }}
app/lang/tr/language.php -> 'nov' => 'kas'
Run Code Online (Sandbox Code Playgroud)
这看起来像重新发明轮子和编程相当可怕.我确信有一些本地化标准.就像是:
{{ $article->created_at->format('M')->localiseTo('tr_TR') }}
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
Mar*_*ian 26
使用库作为Laravel-日期,你只需要设置在Laravel应用程序配置文件中的应用程序的语言,并使用其功能要格式化的日期.
在/app/config/app.php中设置语言
'locale' => 'es',
Run Code Online (Sandbox Code Playgroud)
我发现这个库非常有用和干净.要使用它,您可以在库自述文件中编写类似示例的内容.我把结果留给西班牙语.
echo Date::now()->format('l j F Y H:i:s'); // domingo 28 abril 2013 21:58:16
echo Date::parse('-1 day')->diffForHumans(); // 1 día atrás
Run Code Online (Sandbox Code Playgroud)
这是存储库的链接:
要安装此库,您可以按照以下链接中的说明进行操作:
Art*_*res 17
从carbon版本2.30.0开始,您可以使用translatedFormat函数
$date = Carbon::parse('2021-12-08 11:35')->locale('pt-BR');
echo $date->translatedFormat('d F Y'); // 08 dezembro 2021
Run Code Online (Sandbox Code Playgroud)
Bri*_*laz 11
当您在Laravel中从模型中检索日期时,您将获得一个Carbon对象:https: //github.com/briannesbitt/Carbon
如果您参考Carbon文档,它会告诉您如何获取区域设置格式化日期:
不幸的是,基类DateTime没有任何本地化支持.要开始本地化支持,添加了formatLocalized($ format)方法.该实现使用当前实例时间戳调用strftime.如果首先使用setlocale()设置当前语言环境,则返回的字符串将以正确的语言环境格式化.
setlocale(LC_TIME, 'German');
echo $dt->formatLocalized('%A %d %B %Y'); // Donnerstag 25 Dezember 1975
setlocale(LC_TIME, '');
echo $dt->formatLocalized('%A %d %B %Y'); // Thursday 25 December 1975
Run Code Online (Sandbox Code Playgroud)
所以基本上,只需使用formatLocalized('M')而不是format('M')
使用Carbon日期实例时,最好为每个请求全局设置语言环境(例如,在filters.php中)。
App::before(function($request) {
setlocale(LC_TIME, 'sk_SK.utf8');
});
Run Code Online (Sandbox Code Playgroud)
然后照常进行
$dt->formatLocalized('%b'); // $dt is carbon instance
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35709 次 |
| 最近记录: |