Laravel 获取 created_at 不早于 24 小时的行

Laravel get rows with created_at not older than 24 hours

我需要获取数据库中满足某些条件的所有行。其中一个标准是不超过 24 小时。

我一直在尝试在 SO 上发布的不同解决方案,但 none 似乎有效。

我已经尝试了所有这些解决方案:

我没有收到任何错误,我可以在数据库中看到我有结果。这是我的查询现在的样子:

$token = RefreshToken::where([['refresh', $refreshToken], ['valid', true], ['created_at', '<=', Carbon::now()->subDays(1)->toDateTimeString()]])->first();

Log::debug(($token));

我想获得第一个具有来自表单的刷新值、有效且已在不到 24 小时内创建的令牌。

不到 24 小时是:

['created_at', '>=', Carbon::now()->subHours(24)->toDateTimeString()]

有>=,没有<=

还请确保在数据库中保存时和 SELECT 它们时使用相同的时区。

旁注,1 天不是 24 小时,(由于 DST,它可以是 23 或 25,在南极洲甚至可以是 22 和 26)。如果可以,请在 back-end.

中的任何地方使用 UTC