在yii2中设置动态时区

时间:2015-11-09 13:57:36

标签: php timezone yii2 yii2-advanced-app

有谁知道如何为每个用户设置动态时区? 如果时区存储在数据库中,我如何从db获取它并在运行时设置它以便我不需要每次在我的代码中设置它?

1 个答案:

答案 0 :(得分:10)

这是一个示例,假设时区在timezone表中的users列中存储为字符串。将其添加到您的应用程序配置:

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

此代码将在请求之前运行,并根据特定用户设置时区。当然你可以将它移到单独的类中并从这里调用它。

官方文档: