Есть UNIX-время, ну скажем 1292708210. Зима 2010 года, т. е. тогда по Москве ещё было +3.
Делаем:
date_default_timezone_set('Europe/London');
echo date('H:i:s', 1292708210);
> 21:36:50
Далее делаем так:
date_default_timezone_set('Europe/Moscow');
echo date('H:i:s', 1292708210);
> 00:36:50
А потом пробуем так:
date_default_timezone_set('Etc/GMT+3');
echo date('H:i:s', 1292708210);
> 18:36:50
date_default_timezone_set('Etc/GMT-3');
echo date('H:i:s', 1292708210);
> 00:36:50
Где я туплю? Разве GMT+3 не является московским временем?