date_parse

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

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

Опис

date_parse(string $datetime): array

Функцияdate_parse() розбирає вказану в параметрі datetime рядок за тими ж правилами, що й функції strtotime() і DateTimeImmutable::__construct(). Замість повертати тимчасову мітку Unix (при використанні функції strtotime()) або об'єкт DateTimeImmutable(при использовании функцииDateTimeImmutable::__construct()), вона повертає асоціативний масив з інформацією, яку функція змогла виявити в даному рядку параметра datetime

Якщо інформація про певну групу елементів не знайдена, ці елементи масиву будуть встановлені у значення false або будуть відсутні. Якщо це необхідно для побудови тимчасової мітки або об'єкта DateTimeImmutable з одного і того ж рядка параметра datetime, більша кількість полів може бути встановлена ​​в значення не false. Дивіться приклади, де це відбувається.

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

datetime

Дата/время в формате, распознаваемом функциейDateTimeImmutable::__construct()

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

Повертає масив (array), що містить інформацію про дату/час.

Масив, що повертається, містить ключі 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якщо вони виникли в одній і тій же позиції.

Помилки

У разі виникнення помилок форматування дати/часу, елемент масиву 'errors' міститиме повідомлення про ці помилки.

список змін

ВерсияОпис
7.2.0Елемент масиву, що повертається, з ключем zone тепер містить секунди, а чи не хвилини. Крім того, знак інвертовано. Тобто. раніше був -120, а зараз 7200

Приклади

Приклад #1 Приклад використання функції date_parse()** з повним рядком datetime**

Loading...

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

array(12) {
  ["year"]=>
  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 і ще дещо залежно від його значення.

Приклад #2 Приклад використання date_parse()с информацией об аббревиатуре часового пояса

Loading...

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

array(16) {
  ["year"]=>
  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"
}

Приклад #3 Приклад використання date_parse()** з інформацією про ідентифікатор часового поясу**

Loading...

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

array(14) {
  ["year"]=>
  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

Приклад #4 Приклад використання date_parse()** з мінімальним рядком**

Loading...

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

array(12) {
  ["year"]=>
  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".

Приклад #5 Приклад використання date_parse()** з відносними форматами**

Loading...

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

array(13) {
  ["year"]=>
  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, установят временную часть строки в значение . Якщо Thursday передати у функцію DateTimeImmutable::__construct(), то це також призведе до того, що година, хвилина, секунда та дріб будуть встановлені у значення . У наведеному нижче прикладі елемент year, однак, залишений як false

Приклад #6 Приклад використання date_parse()** з побічними ефектами**

Loading...

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

array(13) {
  ["year"]=>
  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)
  }
}

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

  • date_parse_from_format() - Отримання інформації про задану у визначеному форматі дату для розбору параметраdatetimeз певним заданим форматом
  • checkdate() - Перевіряє коректність дати за григоріанським календарем для перевірки григоріанської дати
  • getdate() - Повертає інформацію про дату/час