Столкнулся с проблемой использования типа datetime из Doctrine 2 и MySQL. Точнее, вот с чем: для временных меток я, естественно, хотел использовать MySQL'овский TIMESTAMP, который поддерживает временные зоны и хранит всё правильным образом. Но в Doctrine 2 datetime идёт в MySQL только как DATETIME, т.е. поддержки TIMESTAMP вообще нет.
И тут я стал думать :)
Сначала, естественно, о том, как вкрячить TIMESTAMP. И меня очень удивило, почему никто этого до сих пор не сделал.
А потом я подумал (не без помощи @magazoll) в другом направлении. Ведь база должна быть тупым хранилищем (в нашем случае). Почему бы тогда просто не хранить в БД тот же DATETIME, только время там держать в UTC+0. Т.е. в модели держать время в UTC+0. А уже при выводе или другой обработке конвертить в правильную зону, которая у пользователя.
Обосрите вариант.