2011-02-15 31 views
8

Tengo un proyecto de PHP donde necesito mostrar la hora y la fecha cuando el user1 envía un mensaje a otro usuario, user2. Cuando el usuario2 abre este mensaje, la hora y la fecha se deben mostrar de acuerdo con su zona horaria.¿Convertir la fecha y la hora a GMT y viceversa en PHP .....?

Dado que ambos usuarios pertenecen a diferentes zonas horarias, muestra la misma fecha y hora en que ingresó el USUARIO1.

Por ejemplo: si el Usuario1 envía el mensaje el 15 de febrero de 2011 a las 11:30 a.m. en su zona horaria, y el Usuario2 abre este mensaje, entonces la fecha y la hora deben mostrarse según su zona horaria. Digamos que el Usuario2 pertenece a la India (GMT + 5: 30) y muestra Mensaje Enviado en 15-Feb-2011, 04:30 PM.

Pero está mostrando 15-feb-2011, 11:30 a.m. eso es incorrecto.

Respuesta

1

probar este código:

$tmp_date = new Zend_Date(); 
$tmp_date->setTimezone($user1_timezone); 
$tmp_date->set($date , $user1_date_format); 
$tmp_date->setTimezone($user2_timezone); 
$user2_date = $tmp_date->toString($user2_date_format); 

utilizo este éxito para convertir hora local a UTC.

Best Regards, SWilk

1

Puede utilizar date_create y date_timezone_set. Por ejemplo:

$mydate = date_create('2014-03-27 10:00', timezone_open('Europe/London')); 
date_timezone_set($mydate, timezone_open('Europe/Athens')); 
echo date_format($mydate, 'Y-m-d H:i:s') . "\n"; 

la Salida:

2014-03-27 12:00:00 
1

Usted puede hacer esto en MySQL, así:

SELECT CONVERT_TZ(your_column,"Europe/London","Europe/Paris") FROM table1; 

me gustaría sugerir que almacena toda la información de fecha/hora en UTC y convertir al presentar la información al usuario. Si lo hace en MySQL o PHP depende del diseño de la aplicación.

Cuestiones relacionadas