IntlDateFormatter::setTimeZone

datefmt_set_timezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezoneタイムゾーンを設定する

説明

オブジェクト指向型

public IntlDateFormatter::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): ?bool

手続き型

datefmt_set_timezone(IntlDateFormatter $formatter, IntlTimeZone|DateTimeZone|string|null $timezone): ?bool

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" などのオフセットも指定できます。

戻り値

成功した場合に null、失敗した場合に false を返します。

例1 IntlDateFormatter::setTimeZone() の例

<?php
ini_set
('date.timezone''Europe/Amsterdam');

$formatter IntlDateFormatter::create(NULLNULLNULL"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
)

参考

関連キーワード:  設定, IntlDateFormatter, timezone, IntlTimeZone, setTimeZone, DateTimeZone, datefmt, imezone, データベース, 識別子