Задача: необходимо отфильтровать элементы инфоблока по заведенному свойству с типом Дата/Время
Например: мне необходимы все элементы с датой > сегодняшнего дня
Прописываю условие с $arrFilter (либо arFilter без разницы)
Код |
---|
$current_time = ConvertTimeStamp(false, "FULL");
$arrFilter[">=PROPERTY_222"] = $current_time;
|
Массив филтьра теперь выглядит так:
Код |
---|
Array
(
[>=PROPERTY_222] => 14.02.2013 10:52:36
[IBLOCK_ID] => 18
[IBLOCK_LID] => s1
[IBLOCK_ACTIVE] => Y
[ACTIVE_DATE] =>
[ACTIVE] => Y
[CHECK_PERMISSIONS] => Y
[MIN_PERMISSION] => R
[INCLUDE_SUBSECTIONS] => Y
[SECTION_ID] => 73
)
|
При выдаче он игнорирует условие и выдает мне все элементы, не важно с какой датой.
Самое интересное, что у инфоблока есть стандартное (встроенное свойство) ACTIVE_TO которое при тех же условиях работает корректно:
Код |
---|
$current_time = ConvertTimeStamp(false, "FULL");
$arrFilter[">=DATE_ACTIVE_TO"] = $current_time; |
Массив филтьра теперь выглядит так:
Код |
---|
Array
(
[>=DATE_ACTIVE_TO] => 14.02.2013 10:53:52
[IBLOCK_ID] => 18
[IBLOCK_LID] => s1
[IBLOCK_ACTIVE] => Y
[ACTIVE_DATE] =>
[ACTIVE] => Y
[CHECK_PERMISSIONS] => Y
[MIN_PERMISSION] => R
[INCLUDE_SUBSECTIONS] => Y
[SECTION_ID] => 73
)
|
После чего он мне корректно выдаст все элементы.
Одно и тоже свойство с одним и тем же типом, НО ОНО НЕ РАБОТАЕТ.
Пробовал такие варианты прописывания фильтра - ни один из них не фильтрует.
Код |
---|
$arrFilter[">=DATE_PROPERTY_DATE_END"] = $current_time;
$arrFilter[">=DATE_PROPERTY_DATE_END_VALUE"] = $current_time;
$arrFilter[">=DATE_PROPERTY_date_end_VALUE"] = $current_time;
$arrFilter[">=DATE_DATE_END"] = $current_time;
$arrFilter[">=PROPERTY_date_end_VALUE"] = $current_time;
$arrFilter[">=PROPERTY_date_end_value"] = $current_time;
$arrFilter[">=PROPERTY_DATE_END_VALUE"] = $current_time;
$arrFilter[">=PROPERTY_DATE_END"] = $current_time;
$arrFilter[">=PROPERTY_222"] = $current_time;
$arrFilter[">=PROPERTY_222_VALUE"] = $current_time;
$arrFilter[">"."PROPERTY_222_VALUE"] = $current_time;
$arrFilter[">=date_end"] = $current_time;
|