Först måste du instansiera datetime-objektet med den ursprungliga tidszonen. Sedan, efter att datetime-objektet har instansierats, justera tidszonen med DateTime::setTimezone()
.
Se den här koden, där jag har använt Asia/Hong_Kong
som ett exempel GMT+8 tidszon:
$time = "2012-11-07 15:05:26"; // fetch from database
$date = new DateTime($time,new DateTimeZone('Asia/Hong_Kong'));
$date->setTimezone(new DateTimeZone('Europe/Berlin'));
echo $date->format('Y-m-d H:i:s'); // yields 2012-11-07 08:05:26
Om alla originaldatum alltid är avsedda som GMT+8, och din PHP-applikation är inställd på att använda GMT+8 också (ställ med date_default_timezone_set()
, till exempel), finns det inget behov av att skicka den initiala DateTimeZone
objekt, som nyskapat DateTime
objekt kommer automatiskt att skapas med den tidszonen.