2016-12-08 5 views
0
Sample Database 
Id   scholar_birthday 
1   2001-12-05 
2   2002-10-15 
3   1991-12-19 
4   1990-02-25 

を取得するには、誕生日からのデータにアクセスします。私がここで欲しいのは、年、月、日を個別に取得して、それらをパラメータとしてcreateFromFormat()に渡すことです。は、私はデータベースの列<em>scholar_birthday</em>からデータを取得して自分のコードに問題が生じています年齢に

$input = Scholar::select('scholar_birthday')->get(); 
$strFromArr = serialize($input); 
$format = 'Y/m/d'; 
$year = 'Y'; 
$month = 'm'; 
$day = 'd'; 
dd($format); 
$date = Carbon::createFromFormat($year,$month,$day, $strFromArr); 
dd($date); 

しかし結果(DD()からの戻り値)は次のとおりです。

4桁の年が

誰がどのようにアイデアを持っていますが見つかりませんでしたこれを正しい方法で実装するには?

+0

多分あなたはscholar_birthdayを追加することにより、カーボンオブジェクトに値を自動解析することができモデルのプライベート$ dates属性(https://laravel.com/docs/5.3/eloquent-mutators#date-mutators) – mirko911

+0

@ mikro911 - 実際に私は自分のプロジェクトでlaravel 5.0を使用しています。 – Gatzmar

答えて

0

これは、mysqlクエリで最もよく処理されます。

SELECT YEAR(scholar_birthday) as year, 
     MONTH(scholar_birthday) as month, 
     DAY(scholar_birthday) as day 
FROM Scholar 

今私はlaravelモデルと完全に慣れていないけど、あなたがこれを行うことができますように見える...

$fields = "YEAR(scholar_birthday) as year, MONTH(scholar_birthday) as month, DAY(scholar_birthday) as day"; 
$input = Scholar::select($fields)->get(); 
関連する問題