IntlDateFormatter::setCalendar
datefmt_set_calendar
(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
IntlDateFormatter::setCalendar -- datefmt_set_calendar — Formatter が使うカレンダー型を設定する
説明
オブジェクト指向型
public IntlDateFormatter::setCalendar
( mixed $which
) : bool
手続き型
datefmt_set_calendar
( IntlDateFormatter $fmt
, mixed $which
) : bool
このフォーマッターが使用するカレンダーあるいはカレンダー型を設定します。
パラメータ
fmt
フォーマッターリソース。
which
使用する カレンダー型 (デフォルトは
IntlDateFormatter::GREGORIAN
で、null
を指定した場合にもこれを使います)、あるいは IntlCalendar オブジェクト。IntlCalendar オブジェクトが渡された場合は、それをクローンします。 引数として渡したオブジェクトは、何も変更されません。
フォーマッターのタイムゾーンを残すのは IntlCalendar オブジェクトが渡されなかった場合だけで、 このオブジェクトが渡された場合は新しいタイムゾーンを利用します。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
例
例1 datefmt_set_calendar() の例
<?php$fmt = datefmt_create( 'en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN);echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);?>
例2 オブジェクト指向の例
<?php$fmt = new IntlDateFormatter( 'en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN );echo 'calendar of the formatter is : ' . $fmt->getCalendar();$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();?>
上の例の出力は以下となります。
calendar of the formatter is : 1 Now calendar of the formatter is : 0
例3 引数に IntlCalendar を使う例
<?php$time = strtotime("2013-03-03 00:00:00 UTC");$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");echo "before: ", $formatter->format($time), "\n";/* カレンダーのロケールは使われないことに注目 */$formatter->setCalendar(IntlCalendar::createInstance( "America/New_York", "pt_PT@calendar=islamic"));echo "after: ", $formatter->format($time), "\n";
上の例の出力は以下となります。
before: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time after: Saturday, Rabiʻ II 20, 1434 at 7:00:00 PM Eastern Standard Time
参考
- datefmt_get_calendar() - IntlDateFormatter が使用するカレンダー型を取得する
- datefmt_get_calendar_object() - カレンダーオブジェクトのコピーを取得する
- datefmt_create() - Date Formatter を作成する