Laravel - 仅从数据库中的日期获取年份

时间:2017-09-24 20:37:47

标签: php mysql date laravel-5.4

我在约会时遇到了麻烦,只能获得约会年份。我的日期显示并存储在我的数据库中:2014-09-07。我唯一想要的是该日期的那一年(即2014年)。

以下是我从数据库中获取日期的代码:

$year = DB::table('pets')->pluck('dates')->unique();   

这将从列dates中选出每个唯一的日期。这非常有效,可以毫无困难地显示完整的日期。

到目前为止,我已经尝试过这个:我设法只使用selectRaw('substr(dates,1,4) as year')获得了这一年。这导致:{"year":"2014"}。我无法摆脱括号并假设格式错误?

基本上,我需要帮助才能从mySQL数据库中的日期开始获取年份。

2 个答案:

答案 0 :(得分:1)

我认为当您使用get()然后编码json时使用selectRaw()。所以它包括字段名称。如果您获得了列,则应使用pluck(),或者如果您获得了值,则应使用value()

$year = DB::table('pets')->selectRaw('substr(dates,1,4) as dates')->pluck('dates')->unique(); 

或在刀片中

@php( $year =( json_decode($year, true) )['year'] )

答案 1 :(得分:1)

这可能要晚了,但出于学习目的: 使用模型方法,您可以做到这一点。

Pets::pluck('dates')->map(function ($pet) {
    return $pet->format('Y');
})->unique();