Reputation: 2444
I have a "datetime" field in mysql.
$time = "1900-01-01 00:00:00";
I cant get only year.
I tried $time -> year
, but its not good.
(Trying to get property of non-object) Maybe i need to convert this string to date?
I hope someone can help me! Thanks so much!
Upvotes: 18
Views: 92739
Reputation: 3495
Get year
, month
and day
from timestamp date using carbon library in Laravel.
- Get Year
$timestemp = "2020-01-01 01:02:03";
$year = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->year;
- Get Month
$timestemp = "2020-01-01 01:02:03";
$month = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->month;
- Get day
$timestemp = "2020-01-01 01:02:03";
$day = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->day;
Upvotes: 2
Reputation: 191
use PHP's built in methods
$year = date('Y', strtotime($dateString));
Upvotes: 10
Reputation: 466
Try out this one
$time = date_create("2014-01-01 00:00:00");
echo date_format($time, 'Y');
Upvotes: 4
Reputation: 21911
You can do this in two ways,
1 - Define the date filed in the related model
as,
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');
}
then laravel return a carbon object for these columns, so that you can use like $time->year
.
2- You can create a carbon object and get the year as in Moppo's answer
Carbon::createFromFormat('Y-m-d H:i:s', $time)->year
First one make so clean for me, you can decide which way suits you.
Upvotes: 20