PHPKonf 2020 Online

Допустимые форматы даты/времени

Содержание

В этом разделе описываются все различные форматы, которые принимает парсер: DateTimeImmutable, DateTime, date_create(), date_create_immutable(). Форматы сгруппированы по разделам. В большинстве случаев форматы из разных разделов, разделенные пробелом, запятой или точкой, могут использоваться в одной и той же строке даты/времени. Для каждого из поддерживаемых форматов приведены один или несколько примеров, а также описание формата. Символы в одинарных кавычках нечувствительны к регистру ('t' эквивалентно как t, так и T), символы в двойных кавычках чувствительны к регистру ("T" означает только T).

add a note add a note

User Contributed Notes 1 note

up
27
Ray.Paseur sometimes uses Gmail
4 years ago
When you've got external inputs that do not strictly follow the formatting and disambiguation rules, you may still be able to use the static method ::createFromFormat() to create a usable DateTime object

<?php
/**
* Date values separated by slash are assumed to be in American order: m/d/y
* Date values separated by dash are assumed to be in European order: d-m-y
* Exact formats for date/time strings can be injected with ::createFromFormat()
*/
error_reporting(E_ALL);

// THIS IS INVALID, WOULD IMPLY MONTH == 19
$external = "19/10/2016 14:48:21";

// HOWEVER WE CAN INJECT THE FORMATTING WHEN WE DECODE THE DATE
$format = "d/m/Y H:i:s";
$dateobj = DateTime::createFromFormat($format, $external);

$iso_datetime = $dateobj->format(Datetime::ATOM);
echo
"SUCCESS: $external EQUALS ISO-8601 $iso_datetime";

// MAN PAGE: http://php.net/manual/en/datetime.createfromformat.php
To Top