Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

CIBlockElement::GetList Создание фильтра

00 голосов
4
Здравствуйте, подскажите пожалуйста как реализовать следующую конструкцию:
Нужно выбрать из инфо блока, с помощью CIBlockElement::GetList(), скажем за промежуток времени с начала месяца до конца, как правильно построить фильтр?

Заранее благодарен.
спросил 03 Янв, 14 от Wiwirenka (100 баллов)

4 Ответы

00 голосов
В документации есть пример фильтра для реализации подобной задачи.
http://www.1c-bitrix.ru/help/source/iblock/help/ru/developer/classes/ciblockelement/getlist.php.html
ответил 05 Апр, 14 от Delp (7,220 баллов)
00 голосов
Это я уже читал, не отрабатывает он у меня... вот потому и прошу уточнить....
А как правильно построить фильтр по TIMESTAMP_X, например выбрать за определенный день и сташе?

И еще, а как правильно пользовать это: (можно искать по шаблону [%_]) - можно примерчик!?

Заранее спасибо!
ответил 28 Июль, 14 от Wiwirenka (100 баллов)
00 голосов
такие вопросы говорят о недостаточной документированности стандартных функций, imho
ответил 30 Ноя, 14 от Manakus (160 баллов)
00 голосов
Цитата
Беляев Александр Петрович пишет:
такие вопросы говорят о недостаточной документированности стандартных функций, imho

Ну, именно по таким вопросам документация достаточно описана, тоже IMHO.

Пример выборки всех элементов с датой активности за последние 30 дней:
Код
// получим полный формат сайта
$site_format = CSite::GetDateFormat("FULL");

// переведем формат сайта в формат PHP
$php_format = $DB->DateFormatToPHP($site_format);

// сейчас
$today = time();
// кол-во секунд в сутках
$day = 86400; 
// кол-во секунд в 30 сутках
$last_30_day = $today - ($day*30);

// выведем дату, которая была 30 дней назад
echo $DateFrom = date($php_format, $last_30_day);
echo "<br />";

// выведем текущую дату в формате текущего сайта
echo $DateTo = date($php_format, $today);
echo "<br />";


// найти элементы, у которых дата начала активности в периоде $DateFrom - $DateTo
$res = CIBlockElement::GetList(Array(), Array("><DATE_ACTIVE_FROM"=> Array($DateFrom, $DateTo)));
        while($arRes = $res->GetNext())
        {
              echo "<pre>";
                     print_r($arRes);
              echo "</pre>";
        }


В общем, ребята, изучайте внимательно хелп, там вы найдете ответы на ваши вопросы smile:|

Типы фильтрации:
http://www.1c-bitrix.ru/help/source/iblock/help/ru/developer/filter.php.html

Работа с датой и временем:
http://www.1c-bitrix.ru/help/source/main/help/ru/developer/general/date_time.php.html
ответил 25 Март, 15 от Delp (7,220 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
0 ответов
спросил 07 Май, 14 от IRISH (100 баллов)
0 голосов
2 ответов
спросил 04 Май, 14 от Snezhka (2,240 баллов)
0 голосов
3 ответов
0 голосов
1 ответ
спросил 07 Фев, 15 от GoThGirL (160 баллов)