我有一位用户在2天前注册,3日(created_at:2017-03-03 10:48:53)
我想获取过去7天内每天的注册用户数。 我的尝试是将下面的代码放在for中,并将subday更改为for值,但是失败,返回0.任何提示?
$date = Carbon::today();
User::whereBetween('created_at',array($date->subDays(5)->startOfDay()->toDateString(),$date->subDays(1)->endOfDay()->toDateString()))->count()
谢谢!
答案 0 :(得分:-1)
您的问题在于使用Carbon
包,
您已从对象中减去5天,然后从同一实例中减去新的一天,这将返回如下日期范围:
[自5天起]至[自5天加一天]
这将完全按照以下方式创建一个查询:
SELECT * FROM `xyz` WHERE created_at BETWEEN 2017-02-28 AND 2017-02-27
要解决这个问题,你必须: -
1)使用今日方法重置日期
正确的方法如下:
$date->today()->subDays(1)->toDateString();
2)使用新的日期初始化创建新的Carbon
实例。
按照第一种方式:
$date = Carbon::today();
User::whereBetween('created_at',array($date->subDays(5)->startOfDay()->toDateString(),$date->today()->subDays(1)->endOfDay()->toDateString()))->count();