Я сделал. Вопрос снят.
В components.php изменил код.
В components.php изменил код.
Код |
---|
$arFilter = Array( "ACTIVE" => "Y", ">=".$arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,$currentMonth,1,$currentYear)), "<".$arParams["DATE_FIELD"] => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,$currentMonth+1,1,$currentYear)), "IBLOCK_ID" => $arParams["IBLOCK_ID"] ); $arSelectedFields = Array("ACTIVE", "DATE_ACTIVE_FROM", "DATE_ACTIVE_TO", "ID", "IBLOCK_ID", "SITE_ID", "DETAIL_PAGE_URL", "NAME", "LANG_DIR", "SORT", "IBLOCK_TYPE", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE"); $dbItems = CIBlockElement::GetList(array($arParams["DATE_FIELD"]=>"ASC", "ID"=>"ASC"), $arFilter, false, false, $arSelectedFields); $dbItems->SetUrlTemplates($arParams["DETAIL_URL"]); while($arItem = $dbItems->GetNext()) { $day = 86400; $format = 'd.m.Y'; $startTime = strtotime($arItem["DATE_ACTIVE_FROM"]); $endTime = strtotime($arItem["DATE_ACTIVE_TO"]); //$numDays = round(($endTime - $startTime) / $day) + 1; $numDays = round(($endTime - $startTime) / $day); // без +1 $days = array(); for ($i = 1; $i < $numDays; $i++) { $days = date($format, ($startTime + ($i * $day))); $arDays[$days][] = $arItem; } } |