Настроить голландский формат для даты в Laravel

В моем приложении Laravel хотите отобразить дату в голландском формате. В моем файле config / app.php мой часовой пояс и локаль установлены:

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

Но если я напечатаю дату в моем блейд-файле так:

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

Это все еще не показано в голландском формате. Это работает, когда я вызываю метод setlocale () в конструкторе соответствующего контроллера.

setlocale(LC_TIME, 'NL_nl');

Как я могу установить это глобально или определить это в моей конфигурации?

4

Решение

ПРЕДУПРЕЖДЕНИЕ:

По моему мнению, вы идете в неправильном направлении, изменяя стандартную конфигурацию платформы laravel. Как гласит конвенция, Вы не должны изменять / редактировать значения по умолчанию если ваша заявка не относится к конкретной стране, а не для всего мира.

Узнайте больше о том, как не изменять настройки по умолчанию (сообщение на форуме относится только к часовому поясу, но относится ко всему в целом)

Ответ

Почему вы не используете углерод ?

Сохраните время, как обычно делает 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:

Я бы не советовал вам использовать этот — упомянутый ниже метод — потому что вы будете смешивать blade-сервер и php, что крайне не рекомендуется, так как это приведет к плохому дизайну вашего кода и вашего приложения, даже если вы получите правильный вывод.

Вы можете использовать Carbon Экземпляр прямо в блейд-файле.
Просто добавьте следующий фрагмент кода в ваш view.blade.file

<?php
Carbon\Carbon::setLocale('nl');
$dt = getDateAndTimeValueFromDB();
$newDt = Carbon\Carbon::parse($dt)->timezone('Europe/Amsterdam');
?>

А затем отобразите конвертированную дату в любом месте вашего файла.

{{ $newDt }}

Надеюсь, что это помогает вам. Удачного кодирования. Приветствия.

3

Другие решения

Попробуйте установить его в configServiceProvider:

public function boot() {
App::setLocale(LC_TIME, 'NL_nl');
}
0

По вопросам рекламы [email protected]