Держите телефон в портретном режиме, спасибо ;)

 

Фильтр по дате (Битрикс)

30.09.2016

Часто при выводе в Битриксе списка новостей или товаров каталога, нужноотфильтровать элементы по дате. И при этом в сети много вопросов, как организовать этот список, какой формат даты применять и т.д.

Рассмотрим создание фильтра в Битрикс на примере компонента Список новостей. Чтобы применить к нему фильтр, необходимо создать перед вызовом компонента переменную типа массив. В этом массиве мы задаем все поля и свойства элементов с условиями фильтрации.

Покажу пример фильтрации элементов по дате. Например, необходимо вывестисписок новостей за выбранный год. Выбор года можно организовать в виде списка select и последующего GET запроса. Фильтр в таком случае будет выглядеть так:

<?
global $arrFilter; //переменная фильтра
if($_GET['season'] && is_numeric($_GET['season']) ) { // если выбран год $dateStart = '01.01.'.$_GET['season']; // дата начала года $dateEnd = '31.12.'.$_GET['season']; // дата конца года }
// задаем условия фильтрации, используя сложный фильтр
$arrFilter = array (
array( "LOGIC" => "AND", array(">=DATE_ACTIVE_FROM" => ConvertTimeStamp(strtotime($dataStart),"FULL")), array("<=DATE_ACTIVE_FROM" => ConvertTimeStamp(strtotime($dataEnd),"FULL")), ), );
//подключение компонента $APPLICATION->IncludeComponent("bitrix:news.list", "news_list", array( и т.д. ?>

Обратите внимание на функцию ConvertTimeStamp. Она конвертирует время из Unix-формата в строку в формате сайта. Имеет следующие параметры:

ConvertTimeStamp(
int timestamp = false,
string type = "SHORT",
mixed site = false,
bool SearchInSitesOnly = false
);

Где

  • timestamp – Время в Unix-формате. Необязательный параметр, по умолчанию – текущее время.
  • type – Тип формата. Допустимы следующие значения: FULL – полный (дата и время), SHORT – короткий (дата). Необязательный параметр, по умолчанию равен “SHORT”.
  • site – Идентификатор сайта, в формате которого необходимо вернуть дату. Необязательный параметр. По умолчанию – текущий сайт.
  • SearchInSitesOnly – Искать только на сайте. Необязательный параметр. По умолчанию – “false” текущий сайт.

Надеюсь, данная статья оказалась полезной для вас.


Интересно? вернуться назад.