为 Laravel 中的日期配置荷兰语格式
Configure Dutch format for date in Laravel
在我的 Laravel 应用程序中想要以荷兰语格式显示日期。在我的 config/app.php 文件中,我设置了时区和语言环境:
'timezone' => 'Europe/Amsterdam',
'locale' => 'nl',
但是如果我像这样在 blade 文件中打印日期:
strftime('%a %e %b', strtotime($day->date))
它仍然没有以荷兰语格式显示。当我在相关控制器的构造函数中调用 setlocale() 方法时它起作用了。
setlocale(LC_TIME, 'NL_nl');
如何全局设置或在我的配置中定义它?
尝试在configServiceProvider
中设置:
public function boot() {
App::setLocale(LC_TIME, 'NL_nl');
}
警告:
根据我的说法,您通过更改 laravel 框架的默认配置走错了方向。正如惯例所说,你不应该alter/edit默认值,除非你的应用程序是特定国家/地区而不是全世界。
Read more about not changing the default configurations(论坛的 post 仅与时区相关,但适用于一般情况)
回答
你为什么不使用 Carbon?
将时间存储为 laravel 将照常执行的操作,然后在 blade / 控制器中,更改时区和区域设置并显示它。
方法一:
这是您需要做的:
在你的控制器中导入 Carbon 命名空间
use Carbon\Carbon;
然后在你的方法中:
public function yourMethodName()
{
// replace getDateAndTimeValueFromDB() with whatever
// you are using or whatever your logic is...
$dt = getDateAndTimeValueFromDB();
Carbon::setLocale('nl');
$newDt = Carbon::parse($dt)->timezone('Europe/Amsterdam');
return view('path.to.your_view_file', compact('newDt'));
}
然后在您的视图文件中,将以下内容添加到您想要的任何位置。
{{ $newDt }}
应该可以了。
方法二:
我不建议你使用这个 - 下面提到的方法 - 因为你会把 blade 和 php 混合在一起,这是非常不推荐的,因为那样会导致你的代码和你的应用程序设计不好,即使你会得到正确的输出。
您可以直接在blade 文件中使用Carbon
实例。
只需在 view.blade.file
中添加以下代码片段
<?php
Carbon\Carbon::setLocale('nl');
$dt = getDateAndTimeValueFromDB();
$newDt = Carbon\Carbon::parse($dt)->timezone('Europe/Amsterdam');
?>
然后在文件中任意位置回显转换后的日期。
{{ $newDt }}
希望这对您有所帮助。快乐编码。干杯。
在我的 Laravel 应用程序中想要以荷兰语格式显示日期。在我的 config/app.php 文件中,我设置了时区和语言环境:
'timezone' => 'Europe/Amsterdam',
'locale' => 'nl',
但是如果我像这样在 blade 文件中打印日期:
strftime('%a %e %b', strtotime($day->date))
它仍然没有以荷兰语格式显示。当我在相关控制器的构造函数中调用 setlocale() 方法时它起作用了。
setlocale(LC_TIME, 'NL_nl');
如何全局设置或在我的配置中定义它?
尝试在configServiceProvider
中设置:
public function boot() {
App::setLocale(LC_TIME, 'NL_nl');
}
警告:
根据我的说法,您通过更改 laravel 框架的默认配置走错了方向。正如惯例所说,你不应该alter/edit默认值,除非你的应用程序是特定国家/地区而不是全世界。
Read more about not changing the default configurations(论坛的 post 仅与时区相关,但适用于一般情况)
回答
你为什么不使用 Carbon?
将时间存储为 laravel 将照常执行的操作,然后在 blade / 控制器中,更改时区和区域设置并显示它。
方法一:
这是您需要做的:
在你的控制器中导入 Carbon 命名空间
use Carbon\Carbon;
然后在你的方法中:
public function yourMethodName()
{
// replace getDateAndTimeValueFromDB() with whatever
// you are using or whatever your logic is...
$dt = getDateAndTimeValueFromDB();
Carbon::setLocale('nl');
$newDt = Carbon::parse($dt)->timezone('Europe/Amsterdam');
return view('path.to.your_view_file', compact('newDt'));
}
然后在您的视图文件中,将以下内容添加到您想要的任何位置。
{{ $newDt }}
应该可以了。
方法二:
我不建议你使用这个 - 下面提到的方法 - 因为你会把 blade 和 php 混合在一起,这是非常不推荐的,因为那样会导致你的代码和你的应用程序设计不好,即使你会得到正确的输出。
您可以直接在blade 文件中使用Carbon
实例。
只需在 view.blade.file
<?php
Carbon\Carbon::setLocale('nl');
$dt = getDateAndTimeValueFromDB();
$newDt = Carbon\Carbon::parse($dt)->timezone('Europe/Amsterdam');
?>
然后在文件中任意位置回显转换后的日期。
{{ $newDt }}
希望这对您有所帮助。快乐编码。干杯。