(PHP 5.5.0, PECL >= 3.0.0a1)
IntlCalendar::setTimeZone — Set the timezone used by this calendar
オブジェクト指向型
手続き型
Defines a new timezone for this calendar. The time represented by the object is preserved to the detriment of the field values.
cal
The IntlCalendar resource.
timeZone
The new timezone to be used by this calendar. It can be specified in the following ways:
NULL
。この場合はデフォルトのタイムゾーンを使います。デフォルトは、ini 項目
date.timezone で設定したものか、
date_default_timezone_set() 関数で指定したもの
(そして date_default_timezone_get() が返すもの) になります。
IntlTimeZone。これを直接使います。
DateTimeZone。その識別子を取り出して、ICU タイムゾーンオブジェクトを作ります。 つまり、これは ICU のデータベースに基づくタイムゾーンとなり、PHP のタイムゾーンデータベースに基づくものではありません。
文字列。ICU タイムゾーン識別子として有効なものを指定します。 IntlTimeZone::createTimeZoneIDEnumeration() を参照ください。 "GMT+08:30" などのオフセットも指定できます。
Returns TRUE
on success and FALSE
on failure.
例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)