php - 在 yii2 中设置动态时区

标签 php timezone yii2 yii2-advanced-app

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

最佳答案

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

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

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

官方文档:

关于php - 在 yii2 中设置动态时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33610773/

相关文章:

javascript - 在随机生成图像的 PHP 脚本中,为什么在页面上多次调用它总是生成相同的图像?

php - SSI 或 PHP Include()?

Java时间戳字符串解析

ruby-on-rails - 如何更改 Rails 中 Active Record 的默认时区?

php - Javascript/jQuery 应用程序一键打印 100 张发票,无需打开打印对话框

PHP: MYSQL select inside another MYSQL select?

java - java中的澳大利亚/悉尼时区不考虑DST

php - 不适用于 Yii2 中的环境翻译

php - Yii2 - 如何设置 Find() 之后的行为

php - Yii2 关系数据库困惑