Laravel 5.4 wherebetween碳未能返回数据
问题描述:
我有一个注册的2天前,3号(created_at:2017年3月3日10时48分53秒)用户Laravel 5.4 wherebetween碳未能返回数据
我想注册用户在过去7天内每天计数。 我的尝试是将下面的代码放在for中,并将subday更改为for值,但它失败,返回0.任何提示?
$date = Carbon::today();
User::whereBetween('created_at',array($date->subDays(5)->startOfDay()->toDateString(),$date->subDays(1)->endOfDay()->toDateString()))->count()
谢谢!
答
你的问题是在使用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();
+0
谢谢!你是对的! – user3844579
什么'created_at'字段的类型? – hassan
@HassanAhmed laravels默认,时间戳 – user3844579