Pertama, Anda perlu membuat instance objek datetime dengan zona waktu asli. Kemudian, setelah objek datetime dibuat, sesuaikan zona waktu dengan DateTime::setTimezone()
.
Lihat kode ini, tempat saya menggunakan Asia/Hong_Kong
sebagai contoh zona waktu 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
Jika semua tanggal asli selalu secara konsisten dimaksudkan sebagai GMT+8, dan aplikasi PHP Anda juga disetel untuk menggunakan GMT+8 (diatur dengan date_default_timezone_set()
, misalnya), tidak perlu meneruskan DateTimeZone
initial awal objek, sebagai DateTime
yang baru dibuat objek secara otomatis akan dibuat dengan zona waktu tersebut.