phpday 2022

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parseПреобразует строку в значение отметки времени

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::parse(string $string, int &$offset = null): int|float|false

Процедурный стиль

datefmt_parse(IntlDateFormatter $formatter, string $string, int &$offset = null): int|float|false

Преобразует string в инкрементное значение времени, начиная с offset и используя как можно большую часть входного значения.

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

formatter

Ресурс средства форматирования.

string

Строка для преобразования во время.

offset

Позиция, с которой следует начать синтаксический анализ в string (начиная с нуля). Если до использования string ошибки не возникает, offset будет содержать -1, в противном случае он будет содержать позицию, в которой закончился синтаксический анализ (и произошла ошибка). Эта переменная будет содержать конечную позицию, если при синтаксическом анализе возникла ошибка. Если offset > strlen($string), разбор немедленно завершается ошибкой.

Возвращаемые значения

Отметка времени преобразованного значения или false, если значение не может быть преобразовано.

Примеры

Пример #1 Пример использования в объектно-ориентированном стиле

<?php
$fmt 
= new IntlDateFormatter(
    
'en_US',
    
IntlDateFormatter::FULL,
    
IntlDateFormatter::FULL,
    
'America/Los_Angeles',
    
IntlDateFormatter::GREGORIAN
);
echo 
'Первый преобразованный вывод: ' $fmt->parse('Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = new IntlDateFormatter(
    
'de-DE',
    
IntlDateFormatter::FULL,
    
IntlDateFormatter::FULL,
    
'America/Los_Angeles',
    
IntlDateFormatter::GREGORIAN
);
?>

Пример #2 Пример использования datefmt_parse()

<?php
$fmt 
datefmt_create(
    
'en_US',
    
IntlDateFormatter::FULL,
    
IntlDateFormatter::FULL,
    
'America/Los_Angeles',
    
IntlDateFormatter::GREGORIAN
);
echo 
'Первый преобразованный вывод: ' datefmt_parse($fmt'Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt datefmt_create(
    
'de-DE',
    
IntlDateFormatter::FULL,
    
IntlDateFormatter::FULL,
    
'America/Los_Angeles',
    
IntlDateFormatter::GREGORIAN
);
echo 
'Второй преобразованный вывод: ' datefmt_parse($fmt'Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00');
?

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

Первый преобразованный вывод: 630201600
Второй преобразованный вывод: 630201600

Смотрите также

  • datefmt_create() - Создаёт средство форматирования даты
  • datefmt_format() - Форматирует значение даты/времени в виде строки
  • datefmt_localtime() - Преобразует строку в значение времени на основе поля
  • datefmt_get_error_code() - Получает код ошибки последней операции
  • datefmt_get_error_message() - Получает текст ошибки последней операции

add a note add a note

User Contributed Notes 1 note

up
0
Anonymous
3 years ago
Please note:
* on  a 32-bit system, parse() will return float if the value gets out of integer range
* while parse() parses fractional seconds with a format like 'yyyy-MM-dd HH:mm:ss.SSSSSS', it only returns an int. This is also true when the value is returned as float, msecs remain absent in the return value.
To Top