Используйте часовой пояс, установленный пользователем

По сути, когда я получаю столбец datetime в своей таблице, я хочу настроить его дату и время в зависимости от часового пояса пользователя.

У меня есть этот код, но он, кажется, не работает, время никогда не меняется, хотя я уже меняю его часовой пояс:

public function getCreatedAtAttribute($datetime) {
$timezone = \Auth::user()->timezone;

$datetime = $this->asDateTime($value);

return $datetime->timezone($timezone);
}

Пожалуйста помоги.

0

Решение

использование date_default_timezone_set() установить часовой пояс пользователя.

public function getCreatedAtAttribute($datetime) {
$timezone = \Auth::user()->timezone;

//Call date_default_timezone_set function to set user timezone or whenever it appropieate
date_default_timezone_set($timezone);

$datetime = $this->asDateTime($value);

return $datetime->timezone($timezone);
}

Обновить:

Также используйте Config::set('app.timezone', $timezone) изменить часовой пояс конфигурации laravel.

0

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

Вы можете конвертировать его в указанный пользователем часовой пояс на лету с углерод библиотека, которая уже находится внутри Laravel — вам не нужно добавлять или устанавливать какие-либо пакеты.
Как это:

public function getCreatedAtAttribute($datetime) {
return $datetime->timezone(\Auth::user()->timezone)->format('Y-m-d H:i:s');
}

от : http://laraveldaily.com/timezone-settings-for-created_at-and-similar-fields/?utm_source=tuicool&utm_medium = направление

0

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