我想在两天之间得到一些日期:
$t = TrackingCode::where("organization_id", 10)
->whereBetween("tracking_codes.created_at", [Carbon::parse('2018-02-12 00:00:00'),
Carbon::parse('2018-02-13 23:59:59')])->get()->toArray();
我有一行在2018-02-13 13:33:41
处创建,但它不起作用我得到一个空的数组/集合;
到目前为止,我还尝试过这项工作但没有取得任何成功:
where("created_at", ">",Carbon::parse('2018-02-12 00:00:00'))
->orWhere("created_at","<", Carbon::parse('2018-02-13 23:59:59')
答案 0 :(得分:1)
我曾经将whereDate() - &gt; whereDate()链接起来,以模仿whereBetween功能。您还可以考虑将此逻辑移动到模型上的查询范围。
$query
->whereDate("tracking_codes.created_at", ">", Carbon::parse('2018-02-12 00:00:00')
->whereDate("tracking_codes.created_at", "<", Carbon::parse('2018-02-13 23:59:59')
->get()->toArray();
但也许您可以尝试通过Carbon :: parse(&#39; 2018-02-12 00:00:00&#39;) - &gt; toDateTimeString()将碳实例转换为日期时间字符串。
$t = TrackingCode::where("organization_id", 10)
->whereBetween("tracking_codes.created_at", [Carbon::parse('2018-02-12 00:00:00')->toDateTimeString(),
Carbon::parse('2018-02-13 23:59:59')->toDateTimeString()])->get()->toArray();
答案 1 :(得分:0)
您是否尝试使用created_at
代替tracking_codes.created_at
?
$t = TrackingCode::where("organization_id", 10)
->whereBetween("created_at", [Carbon::parse('2018-02-12 00:00:00'),
Carbon::parse('2018-02-13 23:59:59')])->get()->toArray();
你的代码应该可行,但我看到了这个区别。也许可以帮到你。
答案 2 :(得分:0)
事实上, carbon 类中的主要问题是你使用前端或显示数据是好的,但是当你与MySQL数据库交谈时,你必须更多< strong>正式,所以你可以使用这样的东西: -
$firstDate = date('2018-02-12 00:00:00', time());
$lastDate = date('2018-04-05 00:00:00', time());
$t = TrackingCode::where("organization_id", 10)
->whereBetween("created_at", [$firstDate, $lastDate])->get();