(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)
IntlDateFormatter::setTimeZone -- datefmt_set_timezone — 設定格式器的時區
物件導向風格
程序風格
$formatter
, IntlTimeZone|DateTimeZone|字串|null $timezone
): 布林值設定 IntlDateFormatter 物件使用的時區。
formatter
格式化器資源。
timezone
此格式化器要使用的時區。可以下列形式指定:
null
,在這種情況下,將使用預設時區,如 ini 設定 date.timezone 中指定,或透過 date_default_timezone_set() 函式設定,並由 date_default_timezone_get() 函式返回。
一個 IntlTimeZone 物件,將直接使用。
一個 DateTimeZone 物件。將會提取其識別碼並建立一個 ICU 時區物件;時區將由 ICU 的資料庫支援,而不是 PHP 的。
一個 字串,應該是一個有效的 ICU 時區識別碼。請參閱 IntlTimeZone::createTimeZoneIDEnumeration()。也接受原始偏移量,例如 "GMT+08:30"
。
範例 #1 IntlDateFormatter::setTimeZone() 範例
<?php
ini_set('date.timezone', 'Europe/Amsterdam');
$formatter = IntlDateFormatter::create(NULL, NULL, NULL, "UTC");
$formatter->setTimeZone(NULL);
echo "NULL\n ", $formatter->getTimeZone()->getId(), "\n";
$formatter->setTimeZone(IntlTimeZone::createTimeZone('Europe/Lisbon'));
echo "IntlTimeZone\n ", $formatter->getTimeZone()->getId(), "\n";
$formatter->setTimeZone(new DateTimeZone('Europe/Paris'));
echo "DateTimeZone\n ", $formatter->getTimeZone()->getId(), "\n";
$formatter->setTimeZone('Europe/Rome');
echo "String\n ", $formatter->getTimeZone()->getId(), "\n";
$formatter->setTimeZone('GMT+00:30');
print_r($formatter->getTimeZone());
以上範例會輸出
NULL Europe/Amsterdam IntlTimeZone Europe/Lisbon DateTimeZone Europe/Paris String Europe/Rome IntlTimeZone Object ( [valid] => 1 [id] => GMT+00:30 [rawOffset] => 1800000 [currentOffset] => 1800000 )