J'ai un champ "datetime" dans mysql.
$time = "1900-01-01 00:00:00";
Je ne peux pas obtenir seulement une année. J'ai essayé $time -> year
, mais ce n'est pas bon.
(Essayer d'obtenir la propriété d'un non-objet) Peut-être ai-je besoin de convertir cette chaîne à ce jour?
J'espère que quelqu'un pourra m'aider! Merci beaucoup!
Vous pouvez le faire de deux manières,
1 - Définissez la date de dépôt dans le model
correspondant comme,
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');
}
alors laravel retourne un objet carbone pour ces colonnes, afin que vous puissiez utiliser comme $time->year
.
2- Vous pouvez créer un objet carbone et obtenir l'année comme dans la réponse de Moppo
Carbon::createFromFormat('Y-m-d H:i:s', $time)->year
Tout d'abord, faites-le si propre pour moi, vous pouvez décider de la façon qui vous convient.
Dans Laravel vous pouvez utiliser Carbon pour analyser la date:
$time = "1900-01-01 00:00:00";
$date = new Carbon( $time );
Une fois que vous obtenez l'objet Carbon, pour obtenir l'année, vous pouvez faire:
$date->year;
Ou:
$date->format('Y');
utiliser les méthodes intégrées de PHP
$year = date('Y', strtotime($dateString));
Essayez celui-ci
$time = date_create("2014-01-01 00:00:00");
echo date_format($time, 'Y');
Obtenez year
, month
et day
à partir de la date d'horodatage en utilisant la bibliothèque de carbone dans Laravel.
- Obtenir l'année
$timestemp = "2020-01-01 01:02:03";
$year = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->year;
- Obtenir le mois
$timestemp = "2020-01-01 01:02:03";
$month = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->month;
- Obtenez le jour
$timestemp = "2020-01-01 01:02:03";
$day = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->day;