Установить часовой пояс в файле Bootstrap - PullRequest
1 голос
/ 08 апреля 2011

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

Как установить часовой пояс в соответствии с пользователями в файле 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]);
    }
}

Ответы [ 3 ]

0 голосов
/ 08 апреля 2011

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

public function login($username, $password) {
    // .. login code ..
    // .. login successful ..
    date_default_timezone_set($user->timezone);
}
0 голосов
/ 06 апреля 2017

Iam с помощью doctrine2 + 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);

    }
    }
}

вы создаете поле часового пояса в таблице БД

0 голосов
/ 08 апреля 2011

Создайте метод начальной загрузки initTimezone (), извлеките часовой пояс пользователя / сеанса из базы данных и установите часовой пояс, если пользователь не вошел в систему, установите часовой пояс по умолчанию.

...