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

时间:2015-12-18 21:22:37

标签: php date laravel-5.1 setlocale

在我的Laravel应用程序中想要以荷兰语格式显示日期。在我的config / app.php文件中,我将时区和语言环境都设置为:

'timezone' => 'Europe/Amsterdam',
'locale' => 'nl',

但是如果我在我的刀片文件中打印一个日期:

strftime('%a %e %b', strtotime($day->date))

它仍然没有以荷兰语格式显示。当我在相关控制器的构造函数中调用setlocale()方法时,它可以工作。

setlocale(LC_TIME, 'NL_nl');

如何全局设置或在我的配置中定义?

2 个答案:

答案 0 :(得分:3)

警告

据我所知,你正在改变laravel框架的默认配置。正如大会所说你不应该改变/编辑默认值,除非你的应用程序是针对特定国家的,而不是针对整个世界。

Read more about not changing the default configurations(论坛帖子仅与时区相关,但适用于所有内容)

<强>答案

为什么不使用Carbon

将时间存储为laravel将照常执行的操作,然后在刀片/控制器中,更改时区和区域设置并显示它。

方法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:

我不建议您使用此方法 - 下面提到的方法 - 因为您将把刀片和php混合在一起,这是非常不推荐的,因为这会导致代码和应用程​​序的设计不良,即使你会得到正确的输出。

您可以直接在刀片文件中使用Carbon实例。 只需在view.blade.file

中添加以下代码段即可
<?php
Carbon\Carbon::setLocale('nl');
$dt = getDateAndTimeValueFromDB();
$newDt = Carbon\Carbon::parse($dt)->timezone('Europe/Amsterdam');
?>

然后在您的文件中随处回复转换日期。

{{ $newDt }}

希望这会帮助你。快乐的编码。欢呼声。

答案 1 :(得分:0)

尝试在configServiceProvider

中进行设置
public function boot() {
    App::setLocale(LC_TIME, 'NL_nl');
}