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

Фильтр по дате

00 голосов
5
Здравствуйте. Помогите, пожалуйста, решить следующую проблему: Создан инфоблок, у него есть несколько пользовательских свойств, одно из них data_torga имеет тип Дата/время. Как сделать фильтр с выборкой по этому свойству с использованием календаря?
спросил 15 Дек, 13 от BkackWulf (100 баллов)

5 Ответы

00 голосов
Задача с фильтром описана в документации внизу в пользовательских комментариях

Цитата
Задача: Фильтрация "от" и "до" по свойству типа "Дата/Время".
Проблема: Свойство типа Дата/Время хранится в БД как строковое с датой в формате YYYY-MM-DD HH:MI:SS.
Решение: Перед фильтрацией обязательно сконвертировать дату из формата сайта в формат, используемый для хранения.
Код
$DateFrom = "01.01.2008";
$DateTo = "31.01.2008";
$arFilter = array (
   ">=PROPERTY_DATE" => ConvertDateTime($DateFrom, "YYYY-MM-DD")." 00:00:00",
   "<=PROPERTY_DATE" => ConvertDateTime($DateTo, "YYYY-MM-DD")." 23:59:59",
);

При использовании такого фильтра выберутся все элементы со свойством DATE от 01.01.2008 00:00:00 до 31.01.2008 23:59:59.
ответил 22 Фев, 14 от Plasma50 (360 баллов)
00 голосов
Добрый день!

Похожая задача:
Как связать описаный пример с датой реального времени?
ответил 14 Июнь, 14 от Xepo6ouTc (260 баллов)
00 голосов
Цитата
Андрей Сапрыка пишет:
Как связать описаный пример с датой реального времени?
date("Y-m-d") вместо

ConvertDateTime
ответил 12 Окт, 14 от NitroGeN (2,840 баллов)
00 голосов
Евгений Малков,  спасибо.


А  вместо "PROPERTY_DATE" что?

Это ж, как я понимаю, свойство инфоблока, через которое мы связываем фильтр.
ответил 12 Фев, 15 от Xepo6ouTc (260 баллов)
00 голосов
Зависит от того, по какому полю вы хотите фильтровать. Если по дате активности


Код
<?
//Все активные элементы это те у которых ACTIVE_FROM не задано или меньше чем сейчас
//при не заданной ACTIVE_TO или ACTIVE_TO больше чем сейчас
$arFilter = (
  "<=DATE_ACTIVE_FROM" => array(false, ConvertTimeStamp(false, "FULL")),
  ">=DATE_ACTIVE_TO"   => array(false, ConvertTimeStamp(false, "FULL")),
);
?>



http://dev.1c-bitrix.ru/api_help/iblock/filters/date.php
ответил 24 Май, 15 от NitroGeN (2,840 баллов)

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

0 голосов
3 ответов
спросил 24 Фев, 14 от uHDurO (100 баллов)
0 голосов
2 ответов
спросил 31 Авг, 13 от JIapo4ka (120 баллов)
0 голосов
4 ответов
спросил 06 Фев, 14 от VALALEX (100 баллов)
0 голосов
3 ответов
спросил 12 Окт, 13 от Ozzman (120 баллов)