我在Laravel有一个项目。我希望返回日期与表“发送”列“created_at”。此列的类型为datetime
。
当我在我的网站上返回日期时,我有这个:
选择日期:2016-08-24 2016-08-24 2016-08-24 2016-08-24 2016-08-25 2016年8月25日
我想要单独显示日期。像这样:
选择日期:2016-08-24 2016-08-25
我的代码:
print $dayDate = (Carbon::createFromFormat('Y-m-d H:i:s', $days->created_at)->format('Y-m-d'));
我无法在查询中使用groupBy
数据库,因为created_at
列是日期和小时。小时彼此不同,因此我不能使用groupBy
。我也不能使用array_unique()
,因为变量$dayDate
在我使用var_dump
时返回了此内容:
string(10)“2016-08-24”string(10)“2016-08-24”string(10) “2016-08-24”string(10)“2016-08-24”string(10)“2016-08-25” string(10)“2016-08-25”
每个日期都是一个单独的表格。我不知道如何将它们组合成一个表格。
编辑: 在文件视图中:
@foreach($day as $days)
<?php
$dayDate = (Carbon::createFromFormat('Y-m-d H:i:s', $days->created_at)->format('Y-m-d'));
var_dump ($dayDate);
?>
@endforeach
在文件控制器中:
$day = transmit::select('created_at')->groupBy('created_at')->get();
我的帖子不重复这篇文章[MySQL查询GROUP BY日/月/年] [2]
[2]:MySQL Query GROUP BY day / month / year,因为在我的专栏created_at
中是date,hour,munte和secon,因此我无法使用groupBy。
答案 0 :(得分:1)
使用以下表达式
$day = transmit::selectRaw('date(created_at) as created_date')->groupBy('created_date')->get();
一个缺点是mysql无法在字段created_at上使用索引,因此会降低查询速度。
答案 1 :(得分:0)
如果您将日期作为字符串,则可以:
<?php
$old_dates = "2016-08-24 2016-08-24 2016-08-24 2016-08-24 2016-08-25 2016-08-25";
$new_dates = implode(" ", array_unique(explode(" ", $old_dates)));
echo $new_dates;