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