Solución:
Use strtotime para generar una marca de tiempo a partir de la cadena dada (interpretada como hora local) y use gmdate para obtenerla como una fecha UTC formateada.
Ejemplo
Como se solicitó, aquí hay un ejemplo simple:
echo gmdate('d.m.Y H:i', strtotime('2012-06-28 23:55'));
Usando DateTime:
$given = new DateTime("2014-12-12 14:18:00");
echo $given->format("Y-m-d H:i:s e") . "n"; // 2014-12-12 14:18:00 Asia/Bangkok
$given->setTimezone(new DateTimeZone("UTC"));
echo $given->format("Y-m-d H:i:s e") . "n"; // 2014-12-12 07:18:00 UTC
Pruebe getTimezone y setTimezone, vea el ejemplo
(Pero esto usa una clase)
ACTUALIZAR:
Sin clases, podrías probar algo como esto:
$the_date = strtotime("2010-01-19 00:00:00");
echo(date_default_timezone_get() . "<br />");
echo(date("Y-d-mTG:i:sz",$the_date) . "<br />");
echo(date_default_timezone_set("UTC") . "<br />");
echo(date("Y-d-mTG:i:sz", $the_date) . "<br />");
NOTA: Es posible que también deba volver a establecer la zona horaria en el original.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)