HIGHLOAD! И работа с DateTime. ФИЛЬТРАЦИЯ ПО ДАТАМ
<?// подключаем пространство имен класса HighloadBlockTable и даём ему псевдоним HLBT для удобной работы
use Bitrix\Highloadblock\HighloadBlockTable as HLBT;
//подключаем модуль highloadblock
CModule::IncludeModule('highloadblock');
//Напишем функцию получения экземпляра класса:
function GetEntityDataClass($HlBlockId) {
if (empty($HlBlockId) || $HlBlockId < 1)
return false;
$hlblock = HLBT::getById($HlBlockId)->fetch();
$entity = HLBT::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();
return $entity_data_class;
}
function getUserIncomes($user_id, $yesterday=false)
{
CModule::IncludeModule('highloadblock');
$entity_data_class = GetEntityDataClass(2);
$filter = array('UF_USER_ID' => $user_id);
if($yesterday){
$d = new DateTime();
$d->modify("-1 day");
$dateStart = $d->format("d.m.Y").' 00:00:00';
$dateEnd = date('d.m.Y 00:00:00');
$filter[">="."UF_DATE"] = \Bitrix\Main\Type\DateTime::createFromUserTime($dateStart);
$filter["<="."UF_DATE"] = \Bitrix\Main\Type\DateTime::createFromUserTime($dateEnd);
}
$rsData = $entity_data_class::getList(array(
'select' => array('*'),
"order" => array("UF_DATE" => "ASC"),
"filter" => $filter
));
$arIncomes = [];
while ($el = $rsData->fetch()) {
$arIncomes[] = $el;
}
return $arIncomes;
}
?>