Настройка динамического часового пояса в yii2

кто-нибудь знает, как настроить динамический пояс для каждого пользователя? Если зона хранится в базе данных, как я могу получить его из БД и установить его во время выполнения, так что мне не нужно устанавливать его каждый раз в мой код?

1 ответов


Это пример того, как это сделать, предполагая, что часовой пояс хранится как строка в столбце timezone на users таблица. Добавьте это в конфигурацию приложения:

'on beforeRequest' => function () {        
    $user = Yii::$app->user->identity;
    if ($user && $user->timezone) {
        Yii::$app->setTimeZone($user->timezone);
    }
},

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

официальные документы: