date_parse
Возвращает массив с информацией о проанализированной дате / времени в случае успеха или false в случае неудачи.
Errors/Exceptions
В случае если формат даты/времени содержит ошибку,элемент ‘errors’ будет содержать сообщения об ошибках.
Changelog
Version | Description |
---|---|
7.2.0 | Элемент zone возвращенного массива представляет секунды, а не минуты, и его знак инвертирован. Например, -120 теперь 7200 . |
Examples
Пример # 1 date_parse () Пример
print_r(date_parse("2006-12-12 10:00:00.5")); ?>
Выводится приведенный выше пример:
Array ( [year] => 2006 [month] => 12 [day] => 12 [hour] => 10 [minute] => 0 [second] => 0 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array() [error_count] => 0 [errors] => Array() [is_localtime] => )
Относительные форматы не влияют на значения, анализируемые из абсолютных форматов, но анализируются в «относительный» элемент.
Пример # 2 date_parse () с относительными форматами
print_r(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour")); ?>
Выводится приведенный выше пример:
Array ( [year] => 2006 [month] => 12 [day] => 12 [hour] => 10 [minute] => 0 [second] => 0 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => [relative] => Array ( [year] => 0 [month] => 0 [day] => 7 [hour] => 1 [minute] => 0 [second] => 0 ) )
See Also
PHP 8.2
(PHP 5 5.2.0,7,8)date_modify Псевдоним DateTime::modify()Эта функция является псевдонимом:DateTime::modify()
(PHP 5 5.2.0,7,8)date_offset_get Псевдоним DateTime::getOffset()Эта функция является псевдонимом:DateTime::getOffset()
(PHP 5 5.3.0,7,8)date_parse_from_format Получает информацию о заданном формате в соответствии с заданным Возвращает ассоциативный массив с подробной информацией о
date_parse
Функция date_parse() разбирает указанную в параметре datetime строку по тем же правилам, что и функции strtotime() и DateTimeImmutable::__construct() . Вместо того чтобы возвращать временную метку Unix (при использовании функции strtotime() ) или объект DateTimeImmutable (при использовании функции DateTimeImmutable::__construct() ), она возвращает ассоциативный массив с информацией, которую функция смогла обнаружить в данной строке параметра datetime .
Если информация об определённой группе элементов не найдена, эти элементы массива будут установлены в значение false или будут отсутствовать. Если это необходимо для построения временной метки или объекта DateTimeImmutable из одной и той же строки параметра datetime , большее количество полей может быть установлено в значение не false . Смотрите примеры, в которых это происходит.
Список параметров
Дата/время в формате, распознаваемом функцией DateTimeImmutable::__construct() .
Возвращаемые значения
Возвращает массив ( 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 , если они возникли в одной и той же позиции.
Ошибки
В случае возникновения ошибок форматирования даты/времени, элемент массива ‘errors’ будет содержать сообщения об этих ошибках.
Список изменений
Версия | Описание |
---|---|
7.2.0 | Элемент возвращаемого массива с ключом zone теперь содержит секунды, а не минуты. Кроме того, знак инвертирован. Т.е. раньше был -120 , а теперь 7200 . |
Примеры
Пример #1 Пример использования функции date_parse() с полной строкой datetime
Результат выполнения данного примера:
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() с информацией об аббревиатуре часового пояса
Результат выполнения данного примера:
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() с информацией об идентификаторе часового пояса
Результат выполнения данного примера:
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() с минимальной строкой
Результат выполнения данного примера:
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() с относительными форматами
Результат выполнения данного примера:
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 , установят временную часть строки в значение 0 . Если Thursday передать в функцию DateTimeImmutable::__construct() , то это также приведёт к тому, что час, минута, секунда и дробь будут установлены в значение 0 . В приведённом ниже примере элемент year, однако, оставлен как false .
Пример #6 Пример использования date_parse() с побочными эффектами
Результат выполнения данного примера:
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() — Возвращает информацию о дате/времени
User Contributed Notes
- Функции даты и времени
- checkdate
- date_add
- date_create_from_format
- date_create_immutable_from_format
- date_create_immutable
- date_create
- date_date_set
- date_default_timezone_get
- date_default_timezone_set
- date_diff
- date_format
- date_get_last_errors
- date_interval_create_from_date_string
- date_interval_format
- date_isodate_set
- date_modify
- date_offset_get
- date_parse_from_format
- date_parse
- date_sub
- date_sun_info
- date_sunrise
- date_sunset
- date_time_set
- date_timestamp_get
- date_timestamp_set
- date_timezone_get
- date_timezone_set
- date
- getdate
- gettimeofday
- gmdate
- gmmktime
- gmstrftime
- idate
- localtime
- microtime
- mktime
- strftime
- strptime
- strtotime
- time
- timezone_abbreviations_list
- timezone_identifiers_list
- timezone_location_get
- timezone_name_from_abbr
- timezone_name_get
- timezone_offset_get
- timezone_open
- timezone_transitions_get
- timezone_version_get
Date Parsing in PHP
Date parsing is an essential function in PHP that allows users to convert a string representation of a date into a timestamp or a DateTime object. This function is useful in scenarios where dates are stored as strings, and it is necessary to perform date arithmetic or comparison operations. In this article, we will explore the various aspects of date parsing in PHP and provide a step-by-step guide to using the date_parse_from_format() function.
Understanding Date Parsing
Before we dive into the specifics of date parsing in PHP, it is important to understand what date parsing is and how it works. Date parsing refers to the process of extracting a date or time from a string representation of a date. For example, the string «2023-03-03» can be parsed into a timestamp or a DateTime object, which can then be used for various operations.
Date parsing can be challenging due to the various formats that dates can be represented in, such as «YYYY-MM-DD,» «MM/DD/YYYY,» «DD-MMM-YYYY,» and so on. To parse a date correctly, it is necessary to specify the format of the input string using a format string.
The date_parse_from_format() Function
In PHP, the date_parse_from_format() function is used to parse a date string using a specific format. This function returns an associative array containing detailed information about the parsed date, including the year, month, day, hour, minute, second, timezone, and more.
The syntax of the date_parse_from_format() function is as follows:
date_parse_from_format($format, $date_string);
Where $format is a string specifying the format of the input date string, and $date_string is the input date string that needs to be parsed.
Let’s take a look at an example:
$date_string = "2023-03-03 10:30:00"; $format = "Y-m-d H:i:s"; $date_array = date_parse_from_format($format, $date_string); print_r($date_array);
The output of this code will be:
Array ( [year] => 2023 [month] => 3 [day] => 3 [hour] => 10 [minute] => 30 [second] => 0 [fraction] => [warning_count] => 0 [warnings] => Array() [error_count] => 0 [errors] => Array() [is_localtime] => [zone_type] => 1 [zone] => -14400 [is_dst] => )
As you can see, the date_parse_from_format() function has successfully parsed the input date string «2023-03-03 10:30:00» using the format string «Y-m-d H:i:s.»
Using the date_parse_from_format() function, you can parse dates represented in various formats, including the day of the week, the month name, the AM/PM indicator, and more. You can also specify optional or alternative date and time formats using square brackets and the pipe symbol, respectively.
Conclusion
In conclusion, date parsing is an essential function in PHP that allows you to convert a string representation of a date into a timestamp or a DateTime object.