Tengo un sitio con una función de comentarios donde la marca de tiempo del comentario se almacena en una base de datos MySQL. Por lo que entiendo, la marca de tiempo se convierte a UTC cuando se almacena, luego se convierte de nuevo a la zona horaria predeterminada cuando se recupera. En mi caso, mi servidor está en la zona horaria Central Daylight Time (CDT).PHP & MySQL: Convertir TIMESTAMP almacenado en la zona horaria local del usuario
Tengo un plan para obtener la zona horaria de cada usuario mediante el formulario de entrada. Solo quería saber cómo convertir el valor TIMESTAMP en la zona horaria del usuario.
- En primer lugar, ¿me convertiría de UTC a la zona horaria local? O CDT a la zona horaria local?
- En segundo lugar, ¿cómo haré para hacerlo en PHP? ¿Me acaba de hacer:
$userTimezone = new DateTimeZone($userSubmittedTimezoneString); $myDateTime = new DateTime($storedTimestamp, $userTimezone);
... o es que no es correcta?
no, las marcas de tiempo se almacenan como están en mysql, pero sin ningún tipo de datos TZ. si inserta "3pm, CST" en el db, entonces 3pm, cst es lo que está almacenado. Tendrá que convertir a UTC antes de insertar para que tenga una base común e invariable para convertir a otras ZT. –