Как в Битриксе вывести товары не старше определенной даты
2015-11-22
Как лучше реализовать "Новинки" в Битриксе? Есть несколько выриантов, например сделать через свойство или высчитывать. Я расскажу как высчитывать.
Суть в том, чтобы получить текущую дату, привести ее к Unix Time и вычесть из нее например месяц, три месяца или год.
$current = date('U');
$raznica = $current-15552000; // 6 mon ago
// $raznica = $current-432000; // 2 days ago
// $raznica = $current-2747520000; // 5 yrs ago
// вытащить строку, сделать ее str to date, сравнивать
$arSelect = array("ID", "NAME", "IBLOCK_ID", "PROPERTY_*");
$arFilter = Array("IBLOCK_ID"=>27, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y", ">PROPERTY___24" => date("Y-m-d", $raznica));
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>20), $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
$date_create_unix = strtotime($arProps['__24']['VALUE']);
if($date_create_unix >= $raznica)
{
$newProducts[] = Array('id' => $arFields['ID'], 'name' => $arFields['NAME'], 'date' => $arProps['__24']['VALUE']);
}
}
echo "<pre>";
print_r($newProducts);
echo "</pre>";