编辑:感谢戴维森先生的评论,我将查询更改为:
$query->where(DB::raw('MONTH(date)'), '=', Carbon::parse($month)->format('m'));
操作:
在我的费用概览中,我有一个下拉列表,我可以在其中选择一个月,然后仅查询该特定月份的结果,如下所示:
$query->where('date', 'LIKE', '%' . Carbon::parse($month)->format('m') . '%');
之前,我的查询是这样的:
$query->where('date', 'LIKE', '%2015-' . Carbon::parse($month)->format('m') . '%');
在我的数据库中,我有一个日期时间字段,因此上面的方法有效,但它当然只显示 2015 年的结果。我试图弄清楚如何使用第一个查询来显示 2016 年的结果。
最佳答案
您可以使用 whereMonth
方法,而不是使用 whereRaw
或 LIKE
:
$query->whereMonth('date', '=', Carbon::parse($month)->format('m'));
因为它更容易阅读。 Laravel Query Builder Docs 中未记录该方法,但您可以查看 Query Builder API查看方法签名,以及检查在构建查询时可以使用哪些其他方法(因为官方文档中没有描述很多方法)。
关于php - Laravel 5 Carbon 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792988/