date_parse Возвращает ассоциативный массив с подробной информацией о заданной дате/времени &reftitle.description; arraydate_parse stringdatetime Функция date_parse разбирает указанную в параметре datetime строку по тем же правилам, что и функции strtotime и DateTimeImmutable::__construct. Вместо того чтобы возвращать временную метку Unix (при использовании функции strtotime) или объект DateTimeImmutable (при использовании функции DateTimeImmutable::__construct), она возвращает ассоциативный массив с информацией, которую функция смогла обнаружить в данной строке параметра datetime. Если информация об определённой группе элементов не найдена, эти элементы массива будут установлены в значение &false; или будут отсутствовать. Если это необходимо для построения временной метки или объекта DateTimeImmutable из одной и той же строки параметра datetime, большее количество полей может быть установлено в значение не &false;. Смотрите примеры, в которых это происходит. &reftitle.parameters; datetime Дата/время в формате, распознаваемом функцией DateTimeImmutable::__construct. &reftitle.returnvalues; Возвращает массив (array), содержащий информацию о дате/времени. Возвращаемый массив содержит ключи year, month, day, hour, minute, second, fraction и is_localtime. Если присутствует is_localtime, то zone_type указывает тип часового пояса. Для типа 1 (смещение UTC) указывается zone, добавляется поле is_dst; для типа 2 (аббревиатура) добавляются поля tz_abbr и is_dst; для типа 3 (идентификатор часового пояса) добавляются поля tz_abbr и tz_id. Если в параметре datetime присутствуют элементы относительного времени, например, +3 days, то возвращаемый массив включает вложенный массив с ключом relative. Этот массив затем содержит ключи 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; Пример использования функции <function>date_parse</function> с полной строкой <parameter>datetime</parameter> ]]> &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, установят временную часть строки в значение 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