この節では
DateTimeImmutable, DateTime,
date_create_immutable(), date_create(), date_parse()
および strtotime() が解釈可能な全ての書式について説明します。
これらの書式はセクションごとにグループ分けされています。
たいていの場合、一つの日付・時刻文字列の中でホワイトスペース、
コンマまたはドットで区切られた異なるセクションの書式を併用することができます。
それぞれの書式について、説明と一緒に1個以上の例を示してあります。
シングルクォートで囲まれたフォーマットは大文字小文字を同一視します
('t' は t とも
T とも書けます)。
ダブルクォートで囲まれたフォーマットは大文字小文字を同一視しません
("T" は T としか書けません)。
以下の一般的なルールを考慮すべきです。
false を返します。
DateTimeImmutable::__construct()
はその場合に例外をスローします。
不正な日付を渡していないかどうかについて、追加のチェックが行われます:
<?php
$res = date_parse("2015-09-31");
var_dump($res["warnings"]);
?>
上の例の出力は以下となります。
array(1) {
[11] =>
string(27) "The parsed date was invalid"
}
エッジケースも処理できます。 ただ、処理するためには、 DateTimeImmutable::createFromFormat() を使い、正しいフォーマットを指定する必要があります。
<?php
$res = DateImmutable::createFromFormat("Y-m-d", "2015-09-34");
var_dump($res);
上の例の出力は以下となります。
class DateTime#1 (3) {
public $date =>
string(26) "2015-10-04 17:24:43.000000"
public $timezone_type =>
int(3)
public $timezone =>
string(13) "Europe/London"
}