Đầu tiên, bạn cần khởi tạo đối tượng datetime với múi giờ ban đầu. Sau đó, sau khi đối tượng datetime được khởi tạo, hãy điều chỉnh múi giờ bằng DateTime::setTimezone()
.
Xem mã này, nơi tôi đã sử dụng Asia/Hong_Kong
làm ví dụ múi giờ 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
Nếu tất cả các ngày ban đầu luôn có nghĩa nhất quán là GMT + 8 và ứng dụng PHP của bạn cũng được đặt để sử dụng GMT + 8 (được đặt bằng date_default_timezone_set()
, chẳng hạn), không cần phải chuyển DateTimeZone
ban đầu đối tượng, dưới dạng DateTime
mới được tạo các đối tượng sẽ tự động được tạo với múi giờ đó.