respuesta
convierten la fecha y hora UTC a América/Denver
// create a $dt object with the UTC timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));
// change the timezone of the object without changing it's time
$dt->setTimezone(new DateTimeZone('America/Denver'));
// format the datetime
$dt->format('Y-m-d H:i:s T');
Notas
time()
devuelve el unix timestamp, que es un número, no tiene zona horaria.
date('Y-m-d H:i:s T')
devuelve la fecha en la zona horaria local actual.
gmdate('Y-m-d H:i:s T')
devuelve la fecha en UTC
date_default_timezone_set()
cambia la localización actual zona horaria
cambiar una vez en una zona horaria
// create a $dt object with the America/Denver timezone
$dt = new DateTime('2016-12-12 12:12:12', new DateTimeZone('America/Denver'));
// change the timezone of the object without changing it's time
$dt->setTimezone(new DateTimeZone('UTC'));
// format the datetime
$dt->format('Y-m-d H:i:s T');
aquí se puede ver todas las zonas horarias disponibles
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
aquí están todas las opciones de formato
http://php.net/manual/en/function.date.php
Actualización de PHP zona horaria DB (en Linux)
sudo pecl install timezonedb
Pero, ¿cómo obtengo la indicación de fecha y hora UTC actual? – Mark
¿Por qué necesita la marca de tiempo UTC actual para convertir la marca de tiempo UTC guardada? – Amber
Pero si lo hace, 'time()' siempre devuelve UTC: http://us2.php.net/manual/en/function.time.php – Amber