Если не крон, то запускать маленький скрипт проверки времени(плохо для нагрузки, запускать каждый запрос любого пользователя, может даже робота, например скрипт где то в ядре подключается), что не прошло ещё
time() - 24 * 60 * 60 > $dbtime
И если проверка прошла, то менять статус, например делаем запрос в базу где статус пошёл на убыль, берём время статуса, если условие выполнилось, обновляем статус
Можно тоже самое чисто мускулом сотворить я думаю