Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中为日期配置荷兰格式_Php_Date_Laravel 5.1_Setlocale - Fatal编程技术网

Php 在Laravel中为日期配置荷兰格式

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

在我的Laravel应用程序中,您希望以荷兰语格式显示日期。在我的config/app.php文件中,我设置了时区和区域设置:

'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 }}