date_parse_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_parse_from_format — Отримання інформації про задану в даному форматі дату

Опис

date_parse_from_format(string $format, string $datetime): array

Повертає асоціативний масив із детальною інформацією про задану дату/час.

Список параметрів

format

Документацию по параметруformat, смотрите в документации к методуDateTimeImmutable::createFromFormat(). Застосовуються самі правила.

datetime

Рядок, що становить дату/час.

Значення, що повертаються

Повертає асоціативний масив із детальною інформацією про задану дату/час.

Масив, що повертається, містить ключі year month day hour minute second fractionиis_localtime

Якщо присутній is_localtime, тоzone_type вказує тип часового поясу. Для типу (Зміщення UTC) вказується zone, добавляется полеis_dst; для типа (аббревиатура) добавляются поля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якщо вони виникли в одній і тій же позиції.

Помилки

Функція викидає ValueError, якщо параметр datetime містить нульові байти.

список змін

ВерсияОпис
8.0.21, 8.1.8, 8.2.0Тепер при передачі нульових байтів у параметр datetime викидається ValueError, Який раніше мовчки ігнорувався.
7.2.0Елемент zone масиву, що повертається, відображає тепер секунди замість хвилин, а його знак інвертується. Наприклад, -120 тепер буде 7200

Приклади

Приклад #1 Приклад використання date_parse_from_format()****

Loading...

Результат виконання наведеного прикладу:

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] =>
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => -60
    [is_dst] =>
)

Приклад #2 Приклад використання date_parse_from_format()с предупреждениями

Loading...

Результат виконання наведеного прикладу:

Количество предупреждений: 1
    Позиция 23: The parsed time was invalid

Приклад #3 Приклад використання date_parse_from_format()** з помилками**

Loading...

Результат виконання наведеного прикладу:

Количество ошибок: 3
    Позиция 15: A two digit hour could not be found
    Позиция 19: Data missing

Дивіться також

  • DateTimeImmutable::createFromFormat() - Розбирає рядок з датою згідно з вказаним форматом
  • checkdate() - Перевіряє коректність дати за григоріанським календарем