2015-12-10 63 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));