IntlCalendar::setTimeZone
(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::setTimeZone — このカレンダーで使うタイムゾーンを設定する
説明
オブジェクト指向型
手続き型
$calendar
, IntlTimeZone|DateTimeZone|string|null $timezone
): boolこのカレンダーで使う新しいタイムゾーンを定義します。 このオブジェクトの時刻は、 フィールドの値を保持したまま表現されます。
パラメータ
calendar
-
IntlCalendar クラスのインスタンス。
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 IntlCalendar::setTimeZone()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');
$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
上の例の出力は以下となります。
sábado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental (instant 1370084400000) sábado, 1 de junio de 2013 11:00:00 GMT (instant 1370084400000) sábado, 1 de junio de 2013 14:33:00 GMT+03:33 (instant 1370084400000)