我需要为数据库中的用户抓取这个月的数据,所以我写道:
Carbon::now()->subMonth()
我得到0结果......
当我尝试{{1}}时它的效果很好,但最后30天还给我了......
我怎么解决这个问题?如何只获得这个月的数据?
答案 0 :(得分:3)
->toDateString()
导致查询查找string
值,而不是date
。有两种方法可以解决这个问题:
(...)->where('created_at', '>=', Carbon::now()->startOfMonth())
// OR
(...)->whereDate('created_at', '>=', Carbon::now()->startOfMonth()->toDateString())
如果您只使用Carbon
变量,Laravel知道检查date
逻辑。或者,如果您使用的是string
,则可以使用where
覆盖date
逻辑,将其视为->whereDate()