1

在我的应用程序中有一个默认时区。每个用户都有自己的时区。我想设置存储在数据库中的用户时区。

如何在 Bootstrap 文件中根据用户设置时区。

提前致谢...

class Crm_Bootstrap extends Zend_Application_Module_Bootstrap {

    protected function _initTimezone()
    {

        $userObj = new Application_Model_DbTable_Users();
        require_once('Zend/Session.php');
        $session = new Zend_Session_Namespace('logincred');
        $userdetails = $userObj->userdetails($session->user);
        date_default_timezone_set($userdetails[0][id]);
    }
}
4

3 回答 3

0

创建一个 initTimezone() 引导方法,从数据库中检索用户/会话的时区并设置时区,如果用户未登录,则设置默认时区。

于 2011-04-08T11:38:03.420 回答
0

您还需要在用户的登录方法以及引导程序中执行此操作,否则他们成功登录后的初始页面浏览量将具有不正确的时区。

public function login($username, $password) {
    // .. login code ..
    // .. login successful ..
    date_default_timezone_set($user->timezone);
}
于 2011-04-08T11:46:36.457 回答
0

我正在使用教义2+Symbony 检查数据库中的用户名行。

$userRepo = $em->getRepository('modules\user\models\Users')->find($userId);

在您的数据库中获取时区并将值放在函数中

$timezone = $userRepo->timezone;
date_default_timezone_set($timezone);

代码是

 class Crm_Bootstrap extends Zend_Application_Module_Bootstrap {

    public function init()
    {

        $em = $this->getEntityManager('user');
    @$userId = Zend_Auth::getInstance()->getIdentity()->id;
    $userManager = new UsersManager();
    if ($userId) {

        $userRepo = $em->getRepository('modules\user\models\Users')->find($userId);
        date_default_timezone_set($userRepo->timezone);

    }
    }
}

您在 db 表中创建时区字段

于 2017-04-06T07:05:25.417 回答