Добрый день, подскажите как можно реализовать фильтрацию по дате, есть инфоблок со свойствами DATE_START и DATE_END, нужно вывести те записи которые входят в выбранный пользователем промежуток (например сентябрь 2019) даже если DATE_START и DATE_END меньше или больше выбранного месяца
Код |
---|
$currentYears = date('Y');
$currentMonths = date('n');
if(!empty($_GET["year"])) $selectYear=htmlspecialchars($_GET["year"]); else $selectYear=$currentYears;
if(!empty($_GET["months"])) $selectMonth=htmlspecialchars($_GET["months"]); else $selectMonth=$currentMonths;
$firstMonth = '01.'.$selectMonth.'.'.$selectYear;
$lastMonth = '31.'.$selectMonth.'.'.$selectYear;
$arFilter1 = Array(
"IBLOCK_ID"=>$block_id,
"ACTIVE"=>"Y",
Array(
"LOGIC" => "AND",
">=PROPERTY_DATE_END" => ConvertDateTime($lastMonth, "YYYY-MM-DD"),
"<=PROPERTY_DATE_END" => ConvertDateTime($lastMonth, "YYYY-MM-DD")
),
Array(
"LOGIC" => "AND",
">=PROPERTY_DATE_START" => ConvertDateTime($firstMonth, "YYYY-MM-DD"),
"<=PROPERTY_DATE_START" => ConvertDateTime($firstMonth, "YYYY-MM-DD")
),
); |
$arFilter1:
Код |
---|
array(4) {
["IBLOCK_ID"]=>
int(40)
["ACTIVE"]=>
string(1) "Y"
[0]=>
array(3) {
["LOGIC"]=>
string(3) "AND"
[">=PROPERTY_DATE_END"]=>
string(10) "2019-10-01"
["<=PROPERTY_DATE_END"]=>
string(10) "2019-10-01"
}
[1]=>
array(3) {
["LOGIC"]=>
string(3) "AND"
[">=PROPERTY_DATE_START"]=>
string(10) "2019-09-01"
["<=PROPERTY_DATE_START"]=>
string(10) "2019-09-01"
}
} |