Laravel,仅按日期过滤时间戳

col*_*unk 3 php laravel

我想按用户ID和created_at字段过滤表.唯一的事情是created_at是一个时间戳,我想按日期查询而不是时间.

所以像 -

$messages = Message::where(['from' => $fromUser->id, 'created_at' => 'TODAY'S DATE'])->get();
Run Code Online (Sandbox Code Playgroud)

fan*_*tly 7

我知道(在 Laravel 中)比较 aDATE的唯一方法created_at是使用whereRaw,所以对于你的例子,你会使用类似的东西:

Message::where(...)->whereRaw('DATE(created_at) = ?', [$today])->get();
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关 Eloquent 及其其他方法的更多信息


Ham*_*ami 6

$query->whereDate('created_at', '=', date('Y-m-d'));
Run Code Online (Sandbox Code Playgroud)

要么

$query->whereDate('created_at', '=', Carbon::today()->toDateString());
Run Code Online (Sandbox Code Playgroud)