(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::__construct -- timezone_open — 建立新的 DateTimeZone 物件
物件導向風格
程序風格
建立一個新的 DateTimeZone 物件。
DateTimeZone 物件提供三種不同時區規則的存取:UTC 偏移量(類型 1
)、時區縮寫(類型 2
)以及 IANA 時區資料庫中發佈的時區識別碼(類型 3
)。
DateTimeZone 物件可以附加到 DateTime 和 DateTimeImmutable 物件,以便能夠以本地時區呈現這些物件封裝的時區。
成功時返回 DateTimeZone。程序風格在失敗時返回 false
。
如果提供的時區未被識別為有效時區,此方法會拋出 DateInvalidTimeZoneException。在 PHP 8.3 之前,這是一個 Exception。
範例 #1 建立 DateTimeZone 並將其附加到 DateTimeImmutable
<?php
$d = new DateTimeImmutable("2022-06-02 15:44:48 UTC");
$timezones = [ 'Europe/London', 'GMT+04:45', '-06:00', 'CEST' ];
foreach ($timezones as $tz) {
$tzo = new DateTimeZone($tz);
$local = $d->setTimezone($tzo);
echo $local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
}
?>
以上範例將輸出
範例 #2 在實例化 DateTimeZone 時捕捉錯誤
<?php
// 透過捕捉例外狀況來處理錯誤
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');
foreach ($timezones as $tz) {
try {
$mars = new DateTimeZone($tz);
} catch(Exception $e) {
echo $e->getMessage() . '<br />';
}
}
?>
以上範例將輸出
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos) DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)