Najpierw musisz utworzyć wystąpienie obiektu datetime z oryginalną strefą czasową. Następnie, po utworzeniu instancji obiektu datetime, dostosuj strefę czasową za pomocą DateTime::setTimezone()
.
Zobacz ten kod, gdzie użyłem Asia/Hong_Kong
jako przykład strefa czasowa GMT+8:
$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
Jeśli wszystkie oryginalne daty są zawsze oznaczane jako GMT+8, a Twoja aplikacja PHP jest również ustawiona na używanie GMT+8 (ustaw za pomocą date_default_timezone_set()
na przykład), nie ma potrzeby przekazywania początkowego DateTimeZone
obiekt, jako nowo utworzony DateTime
obiekty zostaną automatycznie utworzone z tą strefą czasową.