我在mysql中有一个“datetime”字段。
$time = "1900-01-01 00:00:00";
我只能得到一年。
我试过$time -> year
,但不好。
(试图获取非对象的属性) 也许我需要将此字符串转换为日期?
我希望有人可以帮助我! 非常感谢!
答案 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_year
,start_month
和year
。
- 获得年份
month
- 获取月
day
- 得到一天
$timestemp = "2020-01-01 01:02:03";
$year = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->year;