date_parse Возвращает ассоциативный массив с подробной информацией о заданной дате/времени &reftitle.description; arraydate_parse stringdatetime Функция date_parse разбирает строку параметра datetime аналогично функции strtotime или методу DateTimeImmutable::__construct, но вместо возврата метки Unix-времени, как это делает функция strtotime, или объекта DateTimeImmutable, который создаёт метод DateTimeImmutable::__construct), функция возвращает ассоциативный массив с информацией, которую функция обнаружила в строке параметра datetime. Функция установит элементам массива значение &false; или пропустит элемент, если не найдёт информацию о конкретных компонентах даты и времени. Поэтому в PHP предусмотрели другие функции для работы с датой и временем, которые при том же значении параметра datetime умеют создавать метку времени или объект DateTimeImmutable, в котором заполняют значения для большего количества компонентов времени, тогда как эта функция для аналогичных компонентов устанавливает значение &false;. Примеры на этой странице показывают обработку строк, из которых невозможно извлечь отдельные компоненты времени. &reftitle.parameters; datetime Строка с датой и временем в формате, который распознаёт метод DateTimeImmutable::__construct. &reftitle.returnvalues; Функция возвращает массив (array) с информацией о дате и времени. Результирующий массив содержит следующие ключи: year, month, day, hour, minute, second, fraction и is_localtime. Элемент zone_type укажет тип часового пояса, если массив с результатами содержит элемент is_localtime. Для 1-го типа представления часовых поясов — со смещением относительно UTC — добавляются поля zone и is_dst; для 2-го типа представления — аббревиатура — добавляются поля tz_abbr и is_dst; для 3-го тип — идентификатор часового пояса — добавляются поля tz_abbr и tz_id. Функция включит в массив с результатами массив relative, если строка datetime содержит элементы относительного времени наподобие +3 days. Массив с результатами разбора элементов времени в относительном формате содержит следующие ключи: year, month, day, hour, minute, second и, если строка содержит названия дней недели или относительные количества рабочих дней, weekday и weekdays. Массив включает поля warning_count и warnings. Первое указывает количество предупреждений. Ключи элементов массива warnings указывают позицию в аргументе datetime, на которой возникло предупреждение, а строковое значение содержит описание предупреждения. Массив также содержит поля error_count и errors. Первое указывает количество ошибок. Ключи элементов массива errors указывают позицию в аргументе datetime, на которой возникла ошибка, а строковое значение содержит описание ошибки. Функция запишет в массивы warnings и errors меньшее количество элементов, чем указывают значения элементов warning_count и error_count, если предупреждения или ошибки возникнут на тех же позициях. &reftitle.errors; При недопустимом формате даты и времени во входной строке функция заполнит массив 'errors' элементами с сообщениями об ошибках. &reftitle.changelog; &Version; &Description; 7.2.0 Элемент zone в массиве результатов теперь содержит секунды вместо минут, а знак инвертируется, например: значение -120 теперь выводится как 7200. &reftitle.examples; Пример разбора полной строки даты и времени <parameter>datetime</parameter>а функцией <function>date_parse</function> &example.outputs; int(2006) ["month"]=> int(12) ["day"]=> int(12) ["hour"]=> int(10) ["minute"]=> int(0) ["second"]=> int(0) ["fraction"]=> float(0.5) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) } ]]> Функция включает элементы часового пояса в результаты, только если строка параметра datetime содержит информацию о часовом поясе. Для часовых поясов функция включает элемент zone_type и ряд других элементов в зависимости от значения типа представления часового пояса. Пример разбора строки с аббревиатурой часового пояса функцией <function>date_parse</function> &example.outputs; int(2022) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> int(10) ["minute"]=> int(28) ["second"]=> int(17) ["fraction"]=> float(0) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(true) ["zone_type"]=> int(2) ["zone"]=> int(0) ["is_dst"]=> bool(true) ["tz_abbr"]=> string(3) "BST" } ]]> Пример разбора строки с идентификатором часового пояса функцией <function>date_parse</function> &example.outputs; int(2022) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> int(10) ["minute"]=> int(28) ["second"]=> int(17) ["fraction"]=> float(0) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(true) ["zone_type"]=> int(3) ["tz_id"]=> string(13) "Europe/London" } ]]> При разборе немногословной строки datetime функция возвращает меньше информации. В следующем примере функция возвращает массив, в котором все компоненты времени содержат значение &false;. Пример разбора строки с минимумом информации о дате функцией <function>date_parse</function> &example.outputs; int(2022) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> bool(false) ["minute"]=> bool(false) ["second"]=> bool(false) ["fraction"]=> bool(false) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) } ]]> Относительные форматы не влияют на значения, которые функция извлекла при разборе абсолютных форматов даты и времени, но результаты разбора относительных форматов включаются в элемент "relative". Пример разбора строки с относительными форматами даты и времени функцией <function>date_parse</function> &example.outputs; int(2006) ["month"]=> int(12) ["day"]=> int(12) ["hour"]=> int(10) ["minute"]=> int(0) ["second"]=> int(0) ["fraction"]=> float(0.5) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) ["relative"]=> array(6) { ["year"]=> int(0) ["month"]=> int(0) ["day"]=> int(7) ["hour"]=> int(1) ["minute"]=> int(0) ["second"]=> int(0) } } ]]> При разборе названий дней недели наподобие Thursday функция установит для компонентов hour, minute, second и fraction значение 0. При передаче значения Thursday в метод DateTimeImmutable::__construct для каждого компонента времени также устанавливается значение 0. В следующем примере для элемента year, однако, функция оставляет значение &false;. Пример побочных эффектов в работе функции <function>date_parse</function> &example.outputs; bool(false) ["month"]=> int(6) ["day"]=> int(2) ["hour"]=> int(0) ["minute"]=> int(0) ["second"]=> int(0) ["fraction"]=> float(0) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(0) ["errors"]=> array(0) { } ["is_localtime"]=> bool(false) ["relative"]=> array(7) { ["year"]=> int(0) ["month"]=> int(0) ["day"]=> int(0) ["hour"]=> int(0) ["minute"]=> int(0) ["second"]=> int(0) ["weekday"]=> int(4) } } ]]> &reftitle.seealso; date_parse_from_format для разбора параметра datetime с определённым заданным форматом checkdate для проверки григорианской даты getdate