decode
Сигнатура, описание и параметры
\Bitrix\Main\Text\DateConverter::decode( $text, $limit = 0 );
Статический метод распознаёт даты в тексте.
Параметры
Параметр | Описание | С версии |
---|---|---|
text | Текст для распознавания. | |
limit | Ограничение на обработку текста в символах. 0 - без ограничений. Рекомендуется использовать разумный лимит, например: распознавать дату только из первой тысячи символов. |
Фразы и модификаторы
Для построения есть 3 группы фраз и 2 группы модификаторов, на основе которых строится распознавание:
Относительная дата | Дни недели | Точная дата | Модификаторы даты | Модификаторы времени |
---|---|---|---|---|
Послезавтра | Понедельник | 11.02 | После: +час | Утро - 10:00 |
Завтра | Вторник | 11.02.2013 | Перед: -час | Обед - 14:00 |
Сегодня | Среда | 11.02.13 - (будет 11.02.2013) | До: -час | Днем - 18:00 |
Вчера | Четверг | Вечер - 20:00 | ||
Позавчера | Пятница | |||
Неделя | Суббота | |||
Выходной | Воскресенье | |||
Месяц |
Смешивая элементы групп и модификаторов, можно получить сложную дату, например фраза: Напомни в середине следующего месяца поставить тебе задачу вернет дату (пример для сообщения, написанного в апреле 2017-го):
2017-05-16 19:00:00
Пример
Вам нужна только дата:
$date = Bitrix\Main\Type\DateTime::createFromText('Напомни в середине следующего месяца поставить тебе задачу'); $date // Обьект DateTime
Вам нужно больше данных или все найденные даты внутри текста
$results = \Bitrix\Main\Text\DateConverter::decode('Напомни в середине следующего месяца поставить тебе задачу', 1000); foreach ($results as $result) // Массив обьектов результатов распознования { $result->getDate(); // Обьект DateTime $result->getText(); // Распознанный текст, который можете использовать для замены на действие $result->getTextPosition(); // Начало распознанного текста $result->getTextLength(); // Длина распознанного текста $result->getType(); // Распознанный основной тип $result->getMetrics(); // Основная метрика (день недели, неделя и тд) $result->getMetricModifier(); // Модификаторы основной метрики (до, после, время) }
© «Битрикс», 2001-2024, «1С-Битрикс», 2024