По сути, когда я получаю столбец datetime в своей таблице, я хочу настроить его дату и время в зависимости от часового пояса пользователя.
У меня есть этот код, но он, кажется, не работает, время никогда не меняется, хотя я уже меняю его часовой пояс:
public function getCreatedAtAttribute($datetime) {
$timezone = \Auth::user()->timezone;
$datetime = $this->asDateTime($value);
return $datetime->timezone($timezone);
}
Пожалуйста помоги.
использование 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.
Вы можете конвертировать его в указанный пользователем часовой пояс на лету с углерод библиотека, которая уже находится внутри Laravel — вам не нужно добавлять или устанавливать какие-либо пакеты.
Как это:
public function getCreatedAtAttribute($datetime) {
return $datetime->timezone(\Auth::user()->timezone)->format('Y-m-d H:i:s');
}