G
N
I
D
A
O
L

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;
}
?>