|
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時間制の時は、
参考
|