Laravel - 如何获取日期的年份 属性

Laravel - How to get year property of date

我在 mysql 中有一个 "datetime" 字段。

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

我不能只得到年份。 我试过 $time -> year,但效果不佳。

(Trying to get property of non-object) Maybe i need to convert this string to date?

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

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

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

获取 Carbon 对象后,要获取年份,您可以执行以下操作:

$date->year;

或者:

$date->format('Y');

您可以通过两种方式做到这一点,


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 return 这些列的碳对象,这样你就可以像 $time->year.


2- 您可以创建一个碳对象并获取年份,如 Moppo 的回答

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

第一个帮我弄的很干净,你可以决定哪种方式适合你。

试试这个

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

使用PHP的内置方法

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

使用 Laravel 中的碳库从时间戳日期获取 yearmonthday

  1. Get Year
$timestemp = "2020-01-01 01:02:03";
$year = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->year;
  1. Get Month
$timestemp = "2020-01-01 01:02:03";
$month = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->month;
  1. Get day
$timestemp = "2020-01-01 01:02:03";
$day = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->day;