kie*_*sky 3 eloquent php-carbon laravel-8
我需要获取数据库中满足某些条件的所有行。这些标准之一是不超过 24 小时。
我一直在尝试发布在 SO 上的不同解决方案,但似乎都不起作用。
我已经尝试过所有这些解决方案:
在Laravel中检索updated_at早于created_at 2小时的记录(雄辩)
我没有收到任何错误,我可以在数据库中看到我有结果。这就是我的查询现在的样子:
$token = RefreshToken::where([['refresh', $refreshToken], ['valid', true], ['created_at', '<=', Carbon::now()->subDays(1)->toDateTimeString()]])->first();
Log::debug(($token));
Run Code Online (Sandbox Code Playgroud)
我想要获取第一个具有来自表单的刷新值、有效且在 24 小时内创建的令牌。
小于 24 小时的是:
['created_at', '>=', Carbon::now()->subHours(24)->toDateTimeString()]
Run Code Online (Sandbox Code Playgroud)
使用 >=,而不是 <=
还要确保在数据库中保存和选择它们时使用相同的时区。
旁注,1 天不是 24 小时(由于 DST,它可能是 23 或 25 小时,甚至南极洲是 22 和 26 小时)。如果可以的话,请在后端的任何地方使用 UTC。