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

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
Наверх