関数・クラス解説
IntlDateFormatter::format
datefmt_format
version:PHP 5 >= 5.3.0, PHP 7, PECL intl (公式)日付/時刻 の値を文字列としてフォーマットする
公式リファレンス
書式
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 オブジェクトを value に渡せるようになりました。 |
サンプル
例1 datefmt_format() の例
$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 オブジェクト指向の例
$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
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール