2017-09-24 12 views
1

私は日付を取るのに苦労し、日付の年だけを取得しています。私の日付が表示され、データベースに2014-09-07として保存されます。私が欲しいのは、その日の年(2014年)です。ここでLaravel - データベースの日付から1年しか取れません

は、データベースから日付を取るために私のコードです:

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

これは、列datesからインクルードそれぞれ独自の日付を選びます。これは完全に機能し、問題なく完全な日付を表示できます。

これまで私はこれを試しました:私はselectRaw('substr(dates,1,4) as year')を使って年を得ることしかできませんでした。結果は{"year":"2014"}です。私は括弧を取り除くことができず、それが間違ったフォーマットであるとしますか?

基本的には、mySQLデータベースに格納されている日付から年を取得するだけの助けが必要です。

+0

あなたのフィールドは日付ですが、selectRawであなたのフィールドが打ち上げです。間違ったフィールドを選択します。 –

+0

@HakanSOMEZおっと、私の間違い。間違ったコードをコピーしました。私は正しく質問を編集しました! – spacetravel

+0

結果は常にこのようなものか、時にはそうですか? –

答えて

1

selectRaw()を使用してjsonをエンコードすると、get()を使用すると思います。フィールド名が含まれています。列を取得する場合はpluck()を使用するか、値を取得する場合はvalue()を使用する必要があります。摘むで

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

またはブレードで

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

ああ。私は何が間違っているのかを見ます。この答えはPaul'sと同じように働きます。 – spacetravel

関連する問題