Laravel 5.4与碳之间无法返回数据

时间:2017-03-05 18:56:52

标签: php laravel-5

我有一位用户在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()

谢谢!

1 个答案:

答案 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();