如何从created_at获取唯一年份值?

时间:2016-08-13 23:39:16

标签: laravel eloquent laravel-5.2

我有一个名为$products的集合,其每个实例都有一个字段created_at。后者显然在DB中具有格式('Y-m-d H:i:s')。现在,很容易获得具有唯一created_at的实例。但是,我想在一个表达式中检索created_at的唯一年值(我可以在我的视图中编写)。我在寻找的是:

$products->unique( year value ('Y' ONLY) of 'created_at' )

此表达式应评估为:['2012', '2013', '2016']

2 个答案:

答案 0 :(得分:2)

在为您提供具有唯一时间戳的集合的注释的基础上,您可以绘制年份并使用以下代码进行排序。

$years = $products->unique(function($item){
    return $item['created_at']->year;
})->map(function($item){
    return $item['created_at']->year;
})->sort()->toArray();

答案 1 :(得分:0)

除了Tim结果

$products = DB::table('products')->get();

$years = $products->unique(function($item){
          return $item['created_at']->year;
         })->map(function($item){
          return $item['created_at']->year; 
         })->sort()->toArray();

您可以使用toArray或values()来获取集合的结果