web-dev-qa-db-ja.com

Laravel-日付の年のプロパティを取得する方法

Mysqlに「datetime」フィールドがあります。

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

1年しか取れません。私は試した $time -> year、しかしそれは良くない。

(非オブジェクトのプロパティを取得しようとしています)多分私はこの文字列を日付に変換する必要がありますか?

誰かが私を助けてくれることを願っています!本当にありがとう!

9
ketom

これには2つの方法があります。


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

最初は私にとってとてもきれいにして、あなたはあなたに合った方法を決めることができます。

16
K.Toress

Laravelでは、 Carbon を使用して日付を解析できます:

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

Carbonオブジェクトを取得したら、年を取得するには、次のようにします。

$date->year;

または:

$date->format('Y');
7
Moppo

pHPの組み込みメソッドを使用する

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

これを試してみてください

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

Laravelのカーボンライブラリを使用して、タイムスタンプ日付からyearmonthおよびdayを取得します。

  1. 年を取得
$timestemp = "2020-01-01 01:02:03";
$year = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->year;
  1. 月を取得
$timestemp = "2020-01-01 01:02:03";
$month = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->month;
  1. 日を得る
$timestemp = "2020-01-01 01:02:03";
$day = Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $timestemp)->day;
0
Dipen Parmar