Zuerst müssen Sie das datetime-Objekt mit der ursprünglichen Zeitzone instanziieren. Passen Sie dann, nachdem das datetime-Objekt instanziiert wurde, die Zeitzone mit DateTime::setTimezone()
.
Siehe diesen Code, wo ich Asia/Hong_Kong
verwendet habe als Beispiel GMT+8 Zeitzone:
$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
Wenn alle Originaldaten immer konsequent als GMT+8 gemeint sind und Ihre PHP-Anwendung ebenfalls auf GMT+8 eingestellt ist (eingestellt mit date_default_timezone_set()
, zum Beispiel), muss die anfängliche DateTimeZone
nicht übergeben werden Objekt als neu erstelltes DateTime
Objekte werden automatisch mit dieser Zeitzone erstellt.