|
DateTimeImmutable::createFromFormatdate_create_immutable_from_format時刻の文字列を指定されたフォーマットに従ってパースする 説明オブジェクト指向型
public static DateTimeImmutablefalse DateTimeImmutable::createFromFormat(string
$format , string $datetime , DateTimeZonenull $timezone = null )手続き型 DateTimeImmutablefalse date_create_immutable_from_format(string
$format , string $datetime , DateTimeZonenull $timezone = null )
新しい DateTimeImmutable オブジェクトを返します。
このオブジェクトは、 パラメータ
戻り値
新しい DateTimeImmutable のインスタンスを返します。
失敗した場合に エラー / 例外
変更履歴
例例1 DateTimeImmutable::createFromFormat の例 オブジェクト指向型
例2 定義済みのフォーマットの定数を DateTimeImmutable::createFromFormat で使う オブジェクト指向型
例3 DateTimeImmutable::createFromFormat の複雑な例
上の例の出力は、 たとえば以下のようになります。 Current time: 2022-06-02 15:50:46 Format: Y-m-d; 2009-02-15 15:50:46 Format: Y-m-d H:i:s; 2009-02-15 15:16:17 Format: Y-m-!d H:i:s; 1970-01-15 15:16:17 Format: !d; 1970-01-15 00:00:00 Format: i; 2022-06-02 00:15:00 例4 リテラル文字を含む書式文字列
上の例の出力は、 たとえば以下のようになります。 23:15:03 例5 オーバーフローした際のふるまい
上の例の出力は、 たとえば以下のようになります。 Sat, 04 Jun 2022 17:01:37 +0000 上の結果は奇妙に見えますが、正しい動作です。 なぜなら、以下のようなオーバーフローが発生しているからです:
例6 曜日がオーバーフローした場合のふるまい
上の例の出力は、 たとえば以下のようになります。 Mon, 10 Aug 2020 01:00:00 +0000 上の結果は奇妙に見えますが、正しい動作です。 なぜなら、以下のようなオーバーフローが発生しているからです:
日付のオーバーフローを検出するために、 DateTimeImmutable::getLastErrors が使えます。 このメソッドの結果には、オーバーフローが発生した場合に警告が含まれます。 例7 オーバーフローした日付を検出する
上の例の出力は、 たとえば以下のようになります。 Sat, 04 Jun 2022 17:01:37 +0000 array(4) { 'warning_count' => int(2) 'warnings' => array(1) { [19] => string(27) "The parsed date was invalid" } 'error_count' => int(0) 'errors' => array(0) { } } 例8 貪欲なパースの振る舞い
上の例の出力は、 たとえば以下のようになります。 Array ( [year] => [month] => [day] => [hour] => 60 [minute] => 10 [second] => 0 [fraction] => 0 [warning_count] => 1 [warnings] => Array ( [5] => The parsed time was invalid ) [error_count] => 1 [errors] => Array ( [4] => A two digit second could not be found ) [is_localtime] => )
フォーマット文字
その後に続く
配列の
さらに、24時間制の時は、
参考
|