Corregir hora incorrecta en PHP

He tenido la desgracia de tener que subir un sistema a un servidor Ubuntu en el cual se mostraba la hora con mucha diferencia a la real. Le he hecho de todo, cambiar desde php.ini la entrada Date, cambiarla desde el código PHP, instalar desde pecl timezonedb, recurrir a hwclock, cuanto tutorial en inglés o español había, lo seguí, pero Ubuntu seguía riéndose colocando la hora incorrecta, algo que si acaso me había llegado a pasar en alguna otra distro, se arreglaba fácilmente. Imprimía la zona horaria y era la correcta, me cambiaba a UTC o GMT para ver aunque sea un cambio en la hora… y seguía mostrando el mismo número de horas incorrectas… a punto estuve de restarle horas desde código, hasta que se me ocurrió usar el objeto datetime.

$hora = new DateTime();
$hora->setTimezone(new DateTimeZone('America/Mexico_City'));
echo $hora->format("H:i:s");
Con esto me mostró al fin la hora correcta.

Author: angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana.
Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

Deja un comentario