europe - timezone php list




Come convertire tra fusi orari in PHP usando la classe DateTime? (2)

Sto cercando di convertire il tempo tra l'ora corrente in UTC e UTC al fuso orario corrente.

Ecco cosa ho fatto:

$schedule_date = new DateTime($triggerOn, new DateTimeZone('UTC') );
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn;

Il valore di output non cambia l'unica cosa che cambia nel formato.

la stringa $triggerOn stata generata in base al fuso orario America/Los_Angeles

Ecco come appare la mia stringa prima e dopo:

BEFORE    04/01/2013 03:08 PM
AFTER     2013-04-01 15:08:00

Quindi il problema qui è che DateTime non converte in UTC.


Crea la data utilizzando il fuso orario locale, quindi chiama DateTime::setTimeZone() per cambiarlo.


Quello che stai cercando è questo:

$triggerOn = '04/01/2013 03:08 PM';
$user_tz = 'America/Los_Angeles';

echo $triggerOn; // echoes 04/01/2013 03:08 PM

$schedule_date = new DateTime($triggerOn, new DateTimeZone($user_tz) );
$schedule_date->setTimeZone(new DateTimeZone('UTC'));
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn; // echoes 2013-04-01 22:08:00






timezone