2011-03-31 21 views
26

Estoy convirtiendo esta fecha y hora:Conversión entre zonas horarias en PHP

Thu, 31 Mar 2011 02:05:59 GMT 

Para la siguiente fecha y hora Formato:

Monday March 28 2011 4:48:02 PM 

estoy usando el siguiente código PHP para lograr esto, pero Quiero convertir todas las zonas horarias a PST/PDT. Miré el manual de PHP y vi esto date_default_timezone_set(), pero no estoy seguro de cómo implementarlo en el código que tengo a continuación.

$date = $messages[0]->CreationTime; 
echo date('l F j Y g:i:s A I', strtotime($date)) 

Respuesta

58

yo no usaría date_default_timezone_set para las conversiones generales TZ. (Para aclarar ... si esto es para fines de presentación, la escritura de ancho, a continuación, utilizando la zona horaria predeterminada es una cosa razonable para hacerlo.)

En su lugar, me gustaría utilizar algo como:

$tz = new DateTimeZone('America/Los_Angeles'); 

$date = new DateTime('Thu, 31 Mar 2011 02:05:59 GMT'); 
$date->setTimezone($tz); 
echo $date->format('l F j Y g:i:s A I')."\n"; 
1
$date = $messages[0]->CreationTime; 
date_default_timezone_set('America/Los_Angeles'); 
echo date('l F j Y g:i:s A I', strtotime($date)); 

Ver this list de zonas horarias disponibles que van pasando en la función

+0

Ah! así de simple: D thansk !!!! – FAFAFOHI

+1

Aquí hay una lista de los argumentos admitidos en date_default_timezone_set: http://www.php.net/manual/en/timezones.php –

+1

cambiando su zona horaria predeterminada es una mala idea. deberías hacer ese tipo de cosas en tu archivo php.ini. si cambia la zona horaria predeterminada, otras fechas podrían verse afectadas cuando no lo esté esperando. –

Cuestiones relacionadas