Здравствуйте! Создал инфоблок "События" с пользовательским полем типа "Дата/Время" (DATETIME) "Дата события". Теперь на основе компонента "bitrix:news.list" пытаюсь вывести события на странице разделив их на "Сегодняшние" и "Предстоящие". Я скопировал компонент "bitrix:news.list" в отдельное пространство имён, затем в коде компонента (component.php) нашёл место где формируется массив с фильтром (приверно 161 строка) и добавил там ещё одно значение :
Код
//WHERE
$arFilter = array (
"IBLOCK_ID" => $arResult["ID"],
"IBLOCK_LID" => SITE_ID,
"ACTIVE" => "Y",
"CHECK_PERMISSIONS" => "Y",
"PROPERTY_DATETIME"=>date("d.m.Y h:i:s"), //Выводим события за сегодня
);
, но понял что данное условие :
Код
"PROPERTY_DATETIME"=>date("d.m.Y h:i:s")
сработает только в момент точного совпадения текущего времени и даты наступления события (секунда в секунду). Можно ли каким -нибудь образом задать фильтр так чтобы часы, минут и секунды не учитывались, а сравнивалась только дата? С date() всё понятно а вот что делать с PROPERTY_DATETIME ? Её нельзя никак предварительно обработать перед сравнением с текущей датой? Заранее спасибо!
В общем "накостылил" я помелочи. Отфильтровать ещё в компоненте не получилось,так что сделал что -то такое. В инфоблоке создал 2 поля типа "Дата/Время" , "Начало событи" и "Окончание события" (Дату начала активности и дату окончания активности использовать не могу ,т.к. они влияют на видимость элемента в принципе, а мне нужно видеть их все в том числе и прошедшие и предстоящие), затем воспользовался функцией обработки времени MakeTimeStamp() . Код получился примерно следующий:
и дальше пошли выводится события удовлетворяющие усливию. Т.е. я взял текущую дат в Unix формате даты начала и окончания события в Unix формате и тупо их сравнил. Наверное не очень правильно, но вроде работает. Может в процессе глубокого познания 1С-Битрикс, найду другое, более действенно решение. ) Спасибо за внимание!