まず、datetimeオブジェクトを元のタイムゾーンでインスタンス化する必要があります。次に、日時オブジェクトがインスタンス化された後、 DateTime::setTimezone()
。
Asia/Hong_Kong
を使用したこのコードを参照してください 例として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
すべての元の日付が常に常にGMT+8として意味され、PHPアプリケーションがGMT + 8も使用するように設定されている場合( date_default_timezone_set()
たとえば)、最初のDateTimeZone
を渡す必要はありません。 新しく作成されたDateTime
としてのオブジェクト オブジェクトはそのタイムゾーンで自動的に作成されます。