Задать вопрос

Работа с часовыми поясами в Yii, если в базе MySQL даты и время хранятся в формате DATETIME?

Есть весьма крупный проект на Yii 1.1, в котором работа с БД MySQL ведётся в 95% случаев через СActiveRecord, и в оставшихся 5%, от которых никак не уйти, прямыми сложными запросами. В БД под дату и время используются поля типа DATETIME, сейчас там всё по московскому времени. Проект расчитан по сути только на РФ, максимум на СНГ. Потребовалось добавить часовые пояса. Как это ровнее всего сделать? Переводить всё в TIMESTAMP не то чтобы лень, но неудобно из-за кучи кода, который надо будет переписать, поэтому разыскивается способ пользоваться возможностями Yii в работе с часовыми поясами не внося изменений в БД.
  • Вопрос задан
  • 2774 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Если хотите использовать часовые пояса, без конвертации тут в любом случае не обойтись.
Тем более исходное время хранится не в UTC, а в Московском. Либо придется писать велосипед по вычислению времени в нужном часовом поясе относительно московского, что будет диким костылем.
Ответ написан
@Zohei
$date= new DateTime($YOUR_DATE, new DateTimeZone('Europe/Samara'));
echo $date->format('Y-m-d H:i:s');
В yii, насколько помню, такой функции не представлено. Напишите свой хелпер или расширьте CFormatter
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы