Как сделать обновление время в полночь?
Если чисто математически считать, то получится как-то так:$offset = 3*3600;
$t = floor((time() + $offset) / 86400) * 86400 - $offset;
(применимо только в часовых поясах, не имеющих перехода на летнее время, иначе - придётся всё-таки использовать функции получения даты-времени)
Сейчас вы считаете за последние 24 часа, если хотите считайте за сутки, то так и считайте, с 0 часов до 23:59, и все это может сделать СУБД.