Php 如何重置用户';一天中的某个时间过去后,你的进步如何?
为这个超具体的标题道歉,以下是我正在尝试做的,我被困在逻辑上了 用户可以设置一天中希望其目标重置的时间,即上午4:00(UTC),并通过服务器上的调度每分钟运行一个命令 如何查询数据库,使其仅获取今天尚未重置且在指定时间之后的目标 该表有一个Php 如何重置用户';一天中的某个时间过去后,你的进步如何?,php,mysql,sql,laravel,eloquent,Php,Mysql,Sql,Laravel,Eloquent,为这个超具体的标题道歉,以下是我正在尝试做的,我被困在逻辑上了 用户可以设置一天中希望其目标重置的时间,即上午4:00(UTC),并通过服务器上的调度每分钟运行一个命令 如何查询数据库,使其仅获取今天尚未重置且在指定时间之后的目标 该表有一个进度字段和重置时间字段 到目前为止我有 $goals = \App\Goal::whereTime('reset_time', '>=', \Carbon\Carbon::now()->toTimeString()) ->get();
进度
字段和重置时间
字段
到目前为止我有
$goals = \App\Goal::whereTime('reset_time', '>=', \Carbon\Carbon::now()->toTimeString())
->get();
foreach ($goals as $goal) {
$goal->progress = 0;
$goal->save();
}
但在4:00AM示例中,将查询4:01-23:59之间的任何内容,导致每分钟重置一次进度
我应该如何解决这个问题?我认为最好的方法是使用计划,每分钟,然后你需要让所有需要重置的用户都重置,然后重置所有这些users@AgeValed是的,我知道日程安排!我更多的是询问如何正确地查询数据库,因为我的示例无法按预期的方式工作。请检查此项,了解如何使时间段超出日期时间。如果你有12小时的格式,你可能需要小心处理。如果您有24小时格式,您可以轻松地将字符串与时间段进行比较。请您在应用程序设计方面增加一点背景知识,以更新您的问题,因为您正试图实现的目标有点不清楚。具体来说,我们需要理解为什么“4:01-23:59之间的任何内容都会被查询”是错误的,因为它似乎符合您所解释的要求。如果你能解释一下重置意味着什么(例如:
null
progress值),那会很有帮助。@sam解释得更清楚一点,很抱歉!