Php 在Laravel中为日期配置荷兰格式
在我的Laravel应用程序中,您希望以荷兰语格式显示日期。在我的config/app.php文件中,我设置了时区和区域设置:Php 在Laravel中为日期配置荷兰格式,php,date,laravel-5.1,setlocale,Php,Date,Laravel 5.1,Setlocale,在我的Laravel应用程序中,您希望以荷兰语格式显示日期。在我的config/app.php文件中,我设置了时区和区域设置: 'timezone' => 'Europe/Amsterdam', 'locale' => 'nl', 但如果我在我的刀片文件中打印一个日期,如下所示: strftime('%a %e %b', strtotime($day->date)) 它仍然没有以荷兰语格式显示。当我在相关控制器的构造函数中调用setlocale()方法时,它就会工作 set
'timezone' => 'Europe/Amsterdam',
'locale' => 'nl',
但如果我在我的刀片文件中打印一个日期,如下所示:
strftime('%a %e %b', strtotime($day->date))
它仍然没有以荷兰语格式显示。当我在相关控制器的构造函数中调用setlocale()方法时,它就会工作
setlocale(LC_TIME, 'NL_nl');
如何全局设置或在配置中定义它?尝试在
configServiceProvider
中设置它:
public function boot() {
App::setLocale(LC_TIME, 'NL_nl');
}
警告: 据我所知,更改laravel框架的默认配置是错误的。按照惯例,您不应该更改/编辑默认值,除非您的应用程序是针对特定国家的,而不是针对整个世界 (论坛的帖子只与时区有关,但一般适用于所有内容) 回答 你为什么不使用 按照laravel通常的做法存储时间,然后在blade/controller中更改时区和区域设置并显示它 方法1: 以下是您需要做的: 在控制器中导入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 }}
应该这样做
方法2: 我不建议您使用下面提到的方法,因为您将混合使用blade和php,这是强烈不推荐的,因为这将导致代码和应用程序的糟糕设计,即使您将获得正确的输出。 您可以直接在刀片文件中使用
Carbon
实例。
只需在view.blade.xml文件中添加以下代码段
<?php
Carbon\Carbon::setLocale('nl');
$dt = getDateAndTimeValueFromDB();
$newDt = Carbon\Carbon::parse($dt)->timezone('Europe/Amsterdam');
?>
希望这对你有所帮助。快乐编码。干杯。根据Carbon文档,我仍然必须使用setLocale以荷兰格式显示它
{{ $newDt }}