Php Laravel,仅按日期过滤时间戳

Php Laravel,仅按日期过滤时间戳,php,laravel,Php,Laravel,我想按用户ID和创建的_at字段筛选表。唯一创建的是时间戳,我只想按日期而不是时间查询 比如说—— $messages = Message::where(['from' => $fromUser->id, 'created_at' => 'TODAY'S DATE'])->get(); 我知道(在Laravel中)将日期与创建日期进行比较的唯一方法是使用whereRaw,因此对于您的示例,您可以使用如下内容: Message::where(...)->whereR

我想按用户ID和创建的_at字段筛选表。唯一创建的是时间戳,我只想按日期而不是时间查询

比如说——

$messages = Message::where(['from' => $fromUser->id, 'created_at' => 'TODAY'S DATE'])->get();
我知道(在Laravel中)将
日期
创建日期
进行比较的唯一方法是使用
whereRaw
,因此对于您的示例,您可以使用如下内容:

Message::where(...)->whereRaw('DATE(created_at) = ?', [$today])->get();
你可以找到更多关于雄辩和其他方法的信息


您可以使用raw方法并将created_at与DATE(created_at)环绕在一起,以便只比较DATE partraw方法?你有一个例子吗?请看我的答案为一个例子:)希望它有帮助!您能给我一个在数据库中格式化日期的例子吗?Laravel中的时间戳格式为:“YYYY-MM-DD HH:MM:SS”这是一个比使用whereRaw更好的选项,应该是答案。谢谢Hamid!是的,在我的情况下,只有Hamid的答案在生产服务器上有效!谢谢
$query->whereDate('created_at', '=', date('Y-m-d'));
$query->whereDate('created_at', '=', Carbon::today()->toDateString());