Доброго времени суток!
Доступно:
Инфоблок Z у которого есть 2 свойства:
1 - DATE_BEGIN (Дата/Время)
2 - DATE_END (Дата/Время)
Необходимо:
Выбрать все элементы этого инфоблока, где DATE_BEGIN <= ТЕКУЩЕЙ ДАТЫ и ( DATE_END является пустым ИЛИ DATE_END >= ТЕКУЩЕЙ ДАТЫ)
КОД:
$arFilter = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => "7",
"<=PROPERTY_DATE_BEGIN" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT"))),
array(
"LOGIC" => "OR",
array(">=PROPERTY_DATE_END" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")))),
array("PROPERTY_DATE_END" => "")
)
);
$dbAllElements = CIBlockElement::GetList(Array("SORT"=>"ASC"),$arFilter,false,false,array('ID','NAME'));
Результат:
Ничего не находит по этому условию.
Дополнительная информация:
После того, как эта, немного сложная, конструкция не дала ожидаемых результатов, попробовал все упростить и сделать просто выборку элементов DATE_BEGIN у которых меньше текущий, и результат тоже был не верный.
$arFilter = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => "7",
"<PROPERTY_DATE_BEGIN" => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")))
);
Попробовал такую же выборку со стандартным полем элемента DATE_ACTIVE_FROM, тогда запрос отработал корректно.
$arFilter = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => "7",
"<DATE_ACTIVE_FROM" => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")))
);
Вывод:
Пока пришел к тому, что выборка по дополнительному свойству которое является ДАТА/ВРЕМЯ работает не корректно.
Призыв:
Подскажите, как правильно решить мою задачу, возможно, я что то не верно делаю или не верно понимаю?
Решали ли кто-нибудь подобные задачи, поделитесь, как вы поступали?
Доступно:
Инфоблок Z у которого есть 2 свойства:
1 - DATE_BEGIN (Дата/Время)
2 - DATE_END (Дата/Время)
Необходимо:
Выбрать все элементы этого инфоблока, где DATE_BEGIN <= ТЕКУЩЕЙ ДАТЫ и ( DATE_END является пустым ИЛИ DATE_END >= ТЕКУЩЕЙ ДАТЫ)
КОД:
$arFilter = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => "7",
"<=PROPERTY_DATE_BEGIN" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT"))),
array(
"LOGIC" => "OR",
array(">=PROPERTY_DATE_END" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")))),
array("PROPERTY_DATE_END" => "")
)
);
$dbAllElements = CIBlockElement::GetList(Array("SORT"=>"ASC"),$arFilter,false,false,array('ID','NAME'));
Результат:
Ничего не находит по этому условию.
Дополнительная информация:
После того, как эта, немного сложная, конструкция не дала ожидаемых результатов, попробовал все упростить и сделать просто выборку элементов DATE_BEGIN у которых меньше текущий, и результат тоже был не верный.
$arFilter = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => "7",
"<PROPERTY_DATE_BEGIN" => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")))
);
Попробовал такую же выборку со стандартным полем элемента DATE_ACTIVE_FROM, тогда запрос отработал корректно.
$arFilter = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => "7",
"<DATE_ACTIVE_FROM" => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")))
);
Вывод:
Пока пришел к тому, что выборка по дополнительному свойству которое является ДАТА/ВРЕМЯ работает не корректно.
Призыв:
Подскажите, как правильно решить мою задачу, возможно, я что то не верно делаю или не верно понимаю?
Решали ли кто-нибудь подобные задачи, поделитесь, как вы поступали?