Своя timeZone для каждого пользователя
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Своя timeZone для каждого пользователя
Привет. Требуется предоставить выбор timeZone в профиле пользователя.
Пользователь выбрал => сохранили выбранную timeZone в бд. Что дальше? Где и как лучше ее применить?
Пользователь выбрал => сохранили выбранную timeZone в бд. Что дальше? Где и как лучше ее применить?
Re: Своя timeZone для каждого пользователя
Код: Выделить всё
if (!Yii::$app->user->isGuest) {
Yii::$app->timeZone = Yii::$app->user->identity->timezone;
}
Последний раз редактировалось ElisDN 2016.09.30, 18:51, всего редактировалось 1 раз.
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Re: Своя timeZone для каждого пользователя
Дмитрий спасибо за ответ. Это я знаю. Скажите куда лучше запихать этот код?ElisDN писал(а):Код: Выделить всё
if (!Yii::$app->user->isGuest) { Yii::$app->formatter->timeZone = Yii::$app->user->identity->timezone; }
Re: Своя timeZone для каждого пользователя
В обработчик beforeRequest или в автозагружаемый через BootstrapInterface класс.
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Re: Своя timeZone для каждого пользователя
Спасибо.ElisDN писал(а):В обработчик beforeRequest или в автозагружаемый через BootstrapInterface класс.
Ребят, случайно ни у кого не завалялась база временных зон на русском языке? Например (UTC+03:00) Европа/Москва
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Re: Своя timeZone для каждого пользователя
В общем нашел как сделать, но не получается подключить IntlTimeZone.
use IntlDateFormatter;
use IntlTimeZone;
IntlDateFormatter работает. А на IntlTimeZone, yii ругается Class 'IntlTimeZone' not found.
$zone = IntlTimeZone::createTimeZone("zone_name");
use IntlDateFormatter;
use IntlTimeZone;
IntlDateFormatter работает. А на IntlTimeZone, yii ругается Class 'IntlTimeZone' not found.
$zone = IntlTimeZone::createTimeZone("zone_name");
Re: Своя timeZone для каждого пользователя
The IntlTimeZone classcelsoft писал(а):В общем нашел как сделать, но не получается подключить IntlTimeZone.
use IntlDateFormatter;
use IntlTimeZone;
IntlDateFormatter работает. А на IntlTimeZone, yii ругается Class 'IntlTimeZone' not found.
$zone = IntlTimeZone::createTimeZone("zone_name");
(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)
http://php.net/manual/ru/class.intltimezone.php
Re: Своя timeZone для каждого пользователя
почему форматтер? вроде у приложения есть поле timeZoneElisDN писал(а):Код: Выделить всё
if (!Yii::$app->user->isGuest) { Yii::$app->formatter->timeZone = Yii::$app->user->identity->timezone; }
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Re: Своя timeZone для каждого пользователя
Не обратил внимания. Спасибо.zelenin писал(а):The IntlTimeZone classcelsoft писал(а):В общем нашел как сделать, но не получается подключить IntlTimeZone.
use IntlDateFormatter;
use IntlTimeZone;
IntlDateFormatter работает. А на IntlTimeZone, yii ругается Class 'IntlTimeZone' not found.
$zone = IntlTimeZone::createTimeZone("zone_name");
(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)
http://php.net/manual/ru/class.intltimezone.php
Re: Своя timeZone для каждого пользователя
Забыл )) Исправил ответ.zelenin писал(а):почему форматтер? вроде у приложения есть поле timeZone
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Re: Своя timeZone для каждого пользователя
Тогда от меня вопрос. Почему у приложения,а не у форматтера? В чем разница?ElisDN писал(а):Забыл )) Исправил ответ.zelenin писал(а):почему форматтер? вроде у приложения есть поле timeZone
Re: Своя timeZone для каждого пользователя
В том, что установив в форматтере, будет действовать только в форматтере. А если установить в приложении, то действовать будет на всё приложение, включая форматтерcelsoft писал(а):Тогда от меня вопрос. Почему у приложения,а не у форматтера? В чем разница?ElisDN писал(а):Забыл )) Исправил ответ.zelenin писал(а):почему форматтер? вроде у приложения есть поле timeZone
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Re: Своя timeZone для каждого пользователя
А если есть компонент в котором нужно применить другую тайм зону? В таком случае нужно именно форматтеру передавать таймзону по идее.Onotole писал(а):В том, что установив в форматтере, будет действовать только в форматтере. А если установить в приложении, то действовать будет на всё приложение, включая форматтерcelsoft писал(а):Тогда от меня вопрос. Почему у приложения,а не у форматтера? В чем разница?ElisDN писал(а): Забыл )) Исправил ответ.
В общем суть понял. Спасибо за ответы.
Re: Своя timeZone для каждого пользователя
ну вы хотите во всем инстансе применить зону для юзера, и кое-где подправить? или кое-где подправить, а в остальном чтобы работало "по Москве"?celsoft писал(а):А если есть компонент в котором нужно применить другую тайм зону? В таком случае нужно именно форматтеру передавать таймзону по идее.Onotole писал(а):В том, что установив в форматтере, будет действовать только в форматтере. А если установить в приложении, то действовать будет на всё приложение, включая форматтерcelsoft писал(а): Тогда от меня вопрос. Почему у приложения,а не у форматтера? В чем разница?
В общем суть понял. Спасибо за ответы.
- celsoft
- Сообщения: 24
- Зарегистрирован: 2014.08.07, 11:09
- Откуда: Россия, г. Благовещенск
- Контактная информация:
Re: Своя timeZone для каждого пользователя
Во всем. Я сначала не понял суть просто. Еще раз спасибо что разъяснили что да как.zelenin писал(а):ну вы хотите во всем инстансе применить зону для юзера, и кое-где подправить? или кое-где подправить, а в остальном чтобы работало "по Москве"?celsoft писал(а):А если есть компонент в котором нужно применить другую тайм зону? В таком случае нужно именно форматтеру передавать таймзону по идее.Onotole писал(а): В том, что установив в форматтере, будет действовать только в форматтере. А если установить в приложении, то действовать будет на всё приложение, включая форматтер
В общем суть понял. Спасибо за ответы.