我的数据库里有这些数据
2018-03-14 01:22:48 2018-03-14 01:22:44 2018-03-14 01:22:40 2018-03-14 01:22:36 2018-03-14 01:22:32 2018-03-14 01:22:28 2018-03-17 01:22:28
我在我的网站上使用了一个laravel,我只想从所有的日期中输出一个单独的日期这是我想要达到的:
2018-03-14 2018-03-17
d5vmydt91#
在雄辩的模型文件中:
<?php // User.php for example class User extends Model { protected $casts = [ 'dateColumn' => 'date', ]; // You can now use $user->dateColumn and you will get back dates // $user->dateColumn->format('Y-m-d'); // 2018-03-14 }
rks48beu2#
就像在拉威尔文档中显示的,你可以使用 unique 方法对您找到的结果。假设您的日期来自用户表:
unique
DB::table('users') ->where('company', 'Google') ->unique('date') ->values() ->all();
axr492tv3#
实现该结果的本机sql示例:
SELECT DATE(t.mycol) AS mycol FROM mytable t GROUP BY DATE(t.mycol)
还有其他一些查询模式可以实现相同的结果,例如:
SELECT DISTINCT DATE(t.mycol) AS mycol FROM mytable t
ldxq2e6h4#
如果以字符串形式检索数据,可以执行以下操作:
<?php $datesString = "2018-03-14 01:22:48 2018-03-14 01:22:44 2018-03-14 01:22:40 2018-03-14 01:22:36 2018-03-14 01:22:32 2018-03-14 01:22:28 2018-03-17 01:22:28"; $datesArray = []; $dateTimeArray = explode(" ", $datesString); foreach($dateTimeArray as $index=>$date) { if($index % 2 == 0) { $datesArray[] = $date; } } $firstDate = $datesArray[0]; $lastDate = $datesArray[sizeOf($datesArray)-1]; echo $firstDate." - ".$lastDate; ?>
如果以数组形式检索数据,可以执行以下操作:
<?php $dateTimeArray = [ "2018-03-14 01:22:48", "2018-03-14 01:22:44", "2018-03-14 01:22:40", "2018-03-14 01:22:36", "2018-03-14 01:22:32", "2018-03-14 01:22:28", "2018-03-17 01:22:28" ]; $datesArray = []; foreach($dateTimeArray as $dateTime) { $datesArray[] = explode(" ", $dateTime)[0]; } $firstDate = $datesArray[0]; $lastDate = $datesArray[sizeOf($datesArray)-1]; echo $firstDate." - ".$lastDate; ?>
编辑:或者,如果希望在数据库端执行此操作,则可以只查询日期字段的最小值和最大值。如下面的问题所回答我希望这有帮助:)
4条答案
按热度按时间d5vmydt91#
在雄辩的模型文件中:
rks48beu2#
就像在拉威尔文档中显示的,你可以使用
unique
方法对您找到的结果。假设您的日期来自用户表:
axr492tv3#
实现该结果的本机sql示例:
还有其他一些查询模式可以实现相同的结果,例如:
ldxq2e6h4#
如果以字符串形式检索数据,可以执行以下操作:
如果以数组形式检索数据,可以执行以下操作:
编辑:
或者,如果希望在数据库端执行此操作,则可以只查询日期字段的最小值和最大值。如下面的问题所回答
我希望这有帮助:)