Извиняюсь за гиперспецифичный заголовок, вот что я пытаюсь сделать, и я застрял на логике.
Пользователи могут установить время суток, в которое они хотят сбросить свою цель, то есть 4:00 AM (UTC), , и команда запускается через расписание на сервере каждую минуту.
Как я могу сделать запрос к базе данных, чтобы она захватила только те цели, которые еще не были сброшены сегодня и после указанного времени?
Таблица имеет поле progress
и поле reset_time
.
Пока у меня есть
$goals = \App\Goal::whereTime('reset_time', '>=', \Carbon\Carbon::now()->toTimeString())
->get();
foreach ($goals as $goal) {
$goal->progress = 0;
$goal->save();
}
, но в примере 4:00 AM будет запрошено что-нибудь из 4: 01-23: 59, что приведет к сбросу прогресса каждую минуту.
Как мне с этим справиться?