Foren / National / Russian / Тех. поддержка / Подскажите про фильтры по датам

Kopusha
#45453 22. September 2021, 09:30

Привет, скорее не про кота а в общем, можем ткнете носом в какой мануал толковый.

Фильтрую запрос по дате, что то наподобии:

switch ($period) {
        case 'day':
            $from = $sys['now'] - 86400;
            $to = $sys['now'];
            break;
        case 'yesterday':
            $from = $sys['now'] - 86400;
            $to = $sys['now'] - 172800;
            break;
        case 'week':
            $from = $sys['now'] - 604800;
            $to = $sys['now'];
            break;
        case 'month':
            $from = $sys['now'] - 2592000;
            $to = $sys['now'];
            break;
        case 'year'://за текущий год
            $from = $sys['now'] - 31536000;
            $to = $sys['now'];
            break;
        case 'all'://за все время
            $from = 0;
            $to = $sys['now'];
            break;
        case 'custom'://выбор дат   
$setfrom = cot_import_date('cust_from', true, false, 'G');
            $setto = cot_import_date('cust_to', true, false, 'G');
            if (!empty($setfrom) && !empty($setto))
            {
                $from = $setfrom;
                $to = $setto;
            }
            else
            {
                cot_error(cot::$L['querydatewrong'].cot::$R['code_error_separator'], '');
                $from = 0;
                $to = $sys['now'];
            }
     
            if ($setfrom <= $setto)
            {
            }
            else
            {
                cot_error(cot::$L['querydatewrong'].cot::$R['code_error_separator'], '');
                $from = 0;
                $to = $sys['now'];
            }
            break;
        default:
        //Весь час
            $from = 0;
            $to = $sys['now'];
            break;
    }
if(!empty($period))
{
    $where['period'] = "date BETWEEN {$from} AND {$to}";
}  
else
{
    $where['period'] = "date BETWEEN {$from} AND {$to}";
}

Оно естественно дает математический фильтр, для которого "год" это с 22 сент 2021 по 22 сент 2220.

case 'custom'://выбор дат   

дает +- выбрать нужный период.
Но надо сделать "за сегодня" = с 0 ночи реально сегодня (по времени системному сервера и настроек сайта - они совпадают) до 23.59 ночи этого дня

Или "за месяц" = с 1 сентября  до 22 сентября.
Может у кого то есть готовый код?
Заранее спасибо!