IntlDateFormatter::format
datefmt_format
(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
IntlDateFormatter::format -- datefmt_format — 日付/時刻 の値を文字列としてフォーマットする
説明
オブジェクト指向型
public IntlDateFormatter::format
( mixed $value
) : string
手続き型
datefmt_format
( IntlDateFormatter $fmt
, mixed $value
) : string
時刻の値を文字列としてフォーマットします。
パラメータ
fmt
Date Formatter リソース。
value
フォーマットする値。DateTimeInterface オブジェクト、 IntlCalendar オブジェクト、 epoch からの経過秒数を表す数値 (小数になる可能性もある)、 あるいは localtime() が出力する形式の配列となります。
DateTime オブジェクトあるいは IntlCalendar オブジェクトを渡した場合は、 そのタイムゾーンは考慮しません。これらをフォーマットするときに使うのは、 フォーマッターで設定されているタイムゾーンです。 渡したオブジェクトのタイムゾーンを使って欲しい場合は、 IntlDateFormatter::setTimeZone() を呼んでそのオブジェクトのタイムゾーンを設定しておかなければいけません。 あるいは、静的関数 IntlDateFormatter::formatObject() をかわりに使ってもかまいません。
返り値
フォーマットされた文字列、あるいはエラーが発生した場合は false
を返します。
変更履歴
バージョン | 説明 |
---|---|
7.1.5 | value パラメータに
一般的な DateTimeInterface オブジェクトのサポートが追加されました。 これより前のバージョンでは、DateTime オブジェクトのみがサポートされていました。 |
PECL 3.0.0 | IntlCalendar オブジェクトを
|
例
例1 datefmt_format() の例
<?php$fmt = datefmt_create( 'en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN);echo 'First Formatted output is ' . datefmt_format($fmt, 0);$fmt = datefmt_create( 'de-DE', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN);echo 'Second Formatted output is ' . datefmt_format($fmt, 0);$fmt = datefmt_create( 'en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, 'MM/dd/yyyy');echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);$fmt = datefmt_create( 'de-DE', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, 'MM/dd/yyyy');echo "Second Formatted output with pattern is " . datefmt_format($fmt, 0);?>
例2 オブジェクト指向の例
<?php$fmt = new IntlDateFormatter( 'en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN);echo 'First Formatted output is ' . $fmt->format(0);$fmt = new IntlDateFormatter( 'de-DE', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN);echo 'Second Formatted output is ' . $fmt->format(0);$fmt = new IntlDateFormatter( 'en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, 'MM/dd/yyyy');echo 'First Formatted output with pattern is ' . $fmt->format(0);$fmt = new IntlDateFormatter( 'de-DE', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, 'MM/dd/yyyy');echo 'Second Formatted output with pattern is ' . $fmt->format(0);?>
上の例の出力は以下となります。
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00 First Formatted output with pattern is 12/31/1969 Second Formatted output with pattern is 12/31/1969
例3 IntlCalendar オブジェクトを使う例
<?php$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));$formatter = IntlDateFormatter::create( 'fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL, $tz, IntlDateFormatter::GREGORIAN);$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');$cal->set(IntlCalendar::FIELD_MONTH, 8); //9th month, Ramadan$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1st day$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);$cal->clear(IntlCalendar::FIELD_MINUTE);$cal->clear(IntlCalendar::FIELD_SECOND);$cal->clear(IntlCalendar::FIELD_MILLISECOND);echo "In this islamic year, Ramadan started/will start on:\n\t", $formatter->format($cal), "\n";// フォーマッターのタイムゾーンを利用します$formatter->setTimeZone('Asia/Tokyo');echo "After changing timezone:\n\t", $formatter->format($cal), "\n";
上の例の出力は以下となります。
In this islamic year, Ramadan started/will start on: mardi 9 juillet 2013 19:00:00 heure avancée d’Europe centrale After changing timezone: mercredi 10 juillet 2013 02:00:00 heure normale du Japon
参考
- datefmt_create() - Date Formatter を作成する
- datefmt_parse() - 文字列をパースしてタイムスタンプにする
- datefmt_get_error_code() - 直近の操作のエラーコードを取得する
- datefmt_get_error_message() - 直近の操作のエラーテキストを取得する
- datefmt_format_object() - オブジェクトの書式を設定する