Документация для разработчиков
Темная тема

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