В этом разделе описываются все различные форматы в BNF-подобном синтаксисе, которые принимает парсер:
DateTimeImmutable, DateTime,
date_create_immutable(),
date_create(), date_parse() и
strtotime(). Форматы сгруппированы
по разделам. В большинстве случаев форматы из разных разделов, разделённые
пробелом, запятой или точкой, могут использоваться в одной и той же строке даты/времени. Для каждого
из поддерживаемых форматов приведены один или несколько примеров, а также
описание формата. Символы в одинарных кавычках нечувствительны к регистру
('t'
эквивалентно как t
, так и T
),
символы в двойных кавычках чувствительны к регистру
("T"
означает только T
).
Чтобы отформатировать объекты DateTimeImmutable и DateTime, обратитесь к документации метода DateTimeInterface::format().
Следует принять во внимание общий свод правил.
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 = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
var_dump($res);
Результат выполнения данного примера:
object(DateTimeImmutable)#1 (3) { ["date"]=> string(26) "2015-10-04 17:24:43.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London" }