Задача: необходимо отфильтровать элементы инфоблока по заведенному свойству с типом Дата/Время
Например: мне необходимы все элементы с датой > сегодняшнего дня
Прописываю условие с $arrFilter (либо arFilter без разницы)
[CODE]$current_time = ConvertTimeStamp(false, "FULL");
$arrFilter[">=PROPERTY_222"] = $current_time;
[/CODE]Массив филтьра теперь выглядит так:
[CODE]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
)
[/CODE]При выдаче он игнорирует условие и выдает мне все элементы, не важно с какой датой.
Самое интересное, что у инфоблока есть стандартное (встроенное свойство) ACTIVE_TO которое при тех же условиях работает корректно:
[CODE]$current_time = ConvertTimeStamp(false, "FULL");
$arrFilter[">=DATE_ACTIVE_TO"] = $current_time;[/CODE]Массив филтьра теперь выглядит так:
[CODE]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
)
[/CODE]После чего он мне корректно выдаст все элементы.
Одно и тоже свойство с одним и тем же типом, НО ОНО НЕ РАБОТАЕТ.
Пробовал такие варианты прописывания фильтра - ни один из них не фильтрует.
[CODE]$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;
[/CODE]
Например: мне необходимы все элементы с датой > сегодняшнего дня
Прописываю условие с $arrFilter (либо arFilter без разницы)
[CODE]$current_time = ConvertTimeStamp(false, "FULL");
$arrFilter[">=PROPERTY_222"] = $current_time;
[/CODE]Массив филтьра теперь выглядит так:
[CODE]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
)
[/CODE]При выдаче он игнорирует условие и выдает мне все элементы, не важно с какой датой.
Самое интересное, что у инфоблока есть стандартное (встроенное свойство) ACTIVE_TO которое при тех же условиях работает корректно:
[CODE]$current_time = ConvertTimeStamp(false, "FULL");
$arrFilter[">=DATE_ACTIVE_TO"] = $current_time;[/CODE]Массив филтьра теперь выглядит так:
[CODE]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
)
[/CODE]После чего он мне корректно выдаст все элементы.
Одно и тоже свойство с одним и тем же типом, НО ОНО НЕ РАБОТАЕТ.
Пробовал такие варианты прописывания фильтра - ни один из них не фильтрует.
[CODE]$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;
[/CODE]