• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/ui/calendarfilter.php
  • Класс: BitrixCalendarUiCalendarFilter
  • Вызов: CalendarFilter::filterByDate
static function filterByDate($fields, array $filter): array
{
	$parseRecursion = false;
	$fromTs = 0;
	$toTs = 0;
	if (isset($fields['fields']['DATE_FROM']))
	{
		$fromTs = CCalendar::Timestamp($fields['fields']['DATE_FROM'], true, false);
		$filter['FROM_LIMIT'] = CCalendar::Date($fromTs, false);
	}
	else if (!($filter['FROM_LIMIT'] ?? null))
	{
		$filter['FROM_LIMIT'] = CCalendar::Date(time() - 31 * 12 * 24 * 3600, false);
	}

	if (isset($fields['fields']['DATE_TO']))
	{
		$toTs = CCalendar::Timestamp($fields['fields']['DATE_TO'], true, false);
		$filter['TO_LIMIT'] = CCalendar::Date($toTs, false);
		if ($fromTs && $toTs < $fromTs)
		{
			$filter['TO_LIMIT'] = $filter['FROM_LIMIT'];
		}
	}

	if ($fromTs && $toTs && $fromTs <= $toTs)
	{
		$parseRecursion = true;
	}

	return [
		$filter,
		$parseRecursion
	];
}