web-dev-qa-db-fra.com

Laravel - Comment obtenir la propriété year de la date

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!

9
ketom

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.

16
K.Toress

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');
7
Moppo

utiliser les méthodes intégrées de PHP

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

Essayez celui-ci

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

Obtenez year, month et day à partir de la date d'horodatage en utilisant la bibliothèque de carbone dans Laravel.

  1. Obtenir l'année
$timestemp = "2020-01-01 01:02:03";
$year = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->year;
  1. Obtenir le mois
$timestemp = "2020-01-01 01:02:03";
$month = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->month;
  1. Obtenez le jour
$timestemp = "2020-01-01 01:02:03";
$day = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->day;
0
Dipen Parmar