Laravel - 如何获得日期的年度财产

时间:2015-12-10 13:18:52

标签: php mysql laravel laravel-5 php-carbon

我在mysql中有一个“datetime”字段。

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

我只能得到一年。 我试过$time -> year,但不好。

  

(试图获取非对象的属性)   也许我需要将此字符串转换为日期?

我希望有人可以帮助我! 非常感谢!

5 个答案:

答案 0 :(得分:11)

你可以用两种方式做到这一点,

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 :(得分:5)

在Laravel中,您可以使用Carbon来解析日期:

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

获得Carbon对象后,即可获得年份:

$date->year;

或者:

$date->format('Y');

答案 2 :(得分:4)

使用PHP的内置方法

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

答案 3 :(得分:2)

试试这个

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

答案 4 :(得分:0)

使用Laravel中的Carbon库从时间戳记日期获取start_yearstart_monthyear

  1. 获得年份
month
  1. 获取月
day
  1. 得到一天
$timestemp = "2020-01-01 01:02:03";
$year = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->year;