IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__constructDate Formatter を作成する

説明

オブジェクト指向型

public static IntlDateFormatter::create(
    ?string $locale,
    int $dateType,
    int $timeType,
    IntlTimeZone|DateTimeZone|string|null $timezone = null,
    IntlCalendar|int|null $calendar = null,
    string $pattern = ""
): ?IntlDateFormatter

オブジェクト指向型 (コンストラクタ)

public IntlDateFormatter::__construct(
    ?string $locale,
    int $dateType,
    int $timeType,
    IntlTimeZone|DateTimeZone|string|null $timezone = null,
    IntlCalendar|int|null $calendar = null,
    string $pattern = ""
)

手続き型

datefmt_create(
    ?string $locale,
    int $dateType,
    int $timeType,
    IntlTimeZone|DateTimeZone|string|null $timezone = null,
    IntlCalendar|int|null $calendar = null,
    string $pattern = ""
): ?IntlDateFormatter

Date Formatter を作成します。

パラメータ

locale

フォーマットやパースの際に使用するロケール。null を指定すると、 ini 設定 intl.default_locale の値を使います。

dateType

使用する日付の形式 (none, short, medium, long, full)。 IntlDateFormatter の定数 のいずれかとなります。

timeType

使用する時刻の形式 (none, short, medium, long, full)。 IntlDateFormatter の定数 のいずれかとなります。

timezone

タイムゾーン ID。デフォルト (そして、null が渡されたときにも使われるもの) は date_default_timezone_get() が返す ID、あるいは calendar パラメータに IntlCalendar オブジェクトが渡されていればそのタイムゾーンを使います。 この ID は、ICU のデータベースにある妥当な識別子である必要があります。あるいは、 オフセットを明示した GMT-05:30 のような形式になります。

IntlTimeZone オブジェクトあるいは DateTimeZone オブジェクトも指定できます。

calendar

フォーマットやパースの際に使用するカレンダー。デフォルトは null で、 これは IntlDateFormatter::GREGORIAN を表します。 IntlDateFormatter のカレンダー定数 あるいは IntlCalendar を指定します。 渡された IntlCalendar は、クローンされます。 IntlDateFormatter によって元のオブジェクトが書き換えられることはありません。 これは、利用するカレンダーの型 (グレゴリオ暦、イスラム暦、ペルシア暦など) の判定に使います。 また、timezone パラメータに null を指定した場合にはタイムゾーンの判定にも使います。

pattern

フォーマットやパースの際に使用するオプションのパターン。 使えるパターンについては » https://unicode-org.github.io/icu/userguide/format_parse/datetime/ を参照ください。

戻り値

作成された IntlDateFormatter を返します。失敗した場合は null を返します。

変更履歴

バージョン 説明
5.5.0/PECL 3.0.0

IntlCalendar オブジェクトを calendar に渡せるようになりました。

IntlTimeZone オブジェクトや DateTimeZone オブジェクトを timezone に渡せるようになりました。

無効なタイムゾーン ID (空文字列を含む) を timezone で指定できなくなりました。

timezonenull を指定した場合は、ICU のデフォルトではなく date_default_timezone_get() が返すタイムゾーンを使うようになりました。

例1 datefmt_create() の例

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles'IntlDateFormatter::GREGORIAN  );
echo 
"First Formatted output is ".datefmt_format$fmt 0);
$fmt datefmt_create"de-DE" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Second Formatted output is ".datefmt_format$fmt 0);

$fmt datefmt_create"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::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::FULLIntlDateFormatter::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::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter"de-DE" ,IntlDateFormatter::FULLIntlDateFormatter::FULL
    
'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo 
"Second Formatted output is ".$fmt->format(0);

$fmt = new IntlDateFormatter"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::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::FULLIntlDateFormatter::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
         

参考

関連キーワード:  IntlDateFormatter, timezone, 作成, string, int, Date, Formatter, datefmt, IntlCalendar, オブジェクト