2015-12-10 102 views
4

我在MySQL中有一個「datetime」字段。Laravel - 如何獲得日期的財產

$time = "1900-01-01 00:00:00"; 

我不能只得到一年。 我試過$time -> year,但它不好。

(試圖獲得非對象的屬性) 也許我需要將此字符串轉換爲日期?

我希望有人能幫助我! 非常感謝!

回答

5

你可以用兩種方法做到這一點,


1 - 定義在相關model的提交日期,

public function getDates() 
{ 
    //define the datetime table column names as below in an array, and you will get the 
    //carbon objects for these fields in model objects. 

    return array('created_at', 'updated_at', 'date_time_field'); 
} 

然後laravel返回碳對象爲這些列,這樣就可以像使用$time->year


2 - 您可以創建一個碳對象,並獲得一年的Moppo的答案

Carbon::createFromFormat('Y-m-d H:i:s', $time)->year 

第一個做出如此乾淨對我來說,你可以決定哪種方式適合你。

+1

這是值得10K) – Moppo

+0

:d OMG yeass,cheerz每一個 –

3

在Laravel可以用Carbon來解析日期:

$time = "1900-01-01 00:00:00"; 
$date = new Carbon($time); 

一旦你獲得了碳對象,拿到一年你可以這樣做:

$date->year; 

或者:

$date->format('Y'); 
2

試試這一個

$time = date_create("2014-01-01 00:00:00"); 
echo date_format($time, 'Y'); 
2

使用PHP的內置方法

$year = date('Y', strtotime($dateString));