web-dev-qa-db-ja.com

Carbonで「created_at」から時間を抽出する方法

私はLaravelフレームワーク内のCarbon機能にまだ苦労しています。テーブルで "created_at"フィールドの日付を抽出するためにモデルで使用されるこれらの関数を作成しました:

public function getCreatedAtAttribute($date) {
    return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('d.m.Y');
}

これは日付に対してうまく機能しますが、created_atフィールド内の時間のみを抽出するこのモデルで関数をどのように記述する必要がありますか?

5
sesc360

日付のデフォルトの動作をオーバーライドすることで、自分を大幅に制限しているように感じます。

アクセサー(getCreatedAttribute)を削除すると、プロパティ自体からformatを呼び出すことができます。

$model->created_at->format('d.m.Y')

または

$model->created_at->format('H:i:s');//e.g. 15:30:00

CarbonDateTimeの単なるラッパーです。フォーマット文字のリストについては、次の場所を参照してください。 http://php.net/manual/en/function.date.php e.g. 2016年2月6日の今日の日付はjS F Y

お役に立てれば!

8
Ross Wilson

使ってみる

public function getCreatedAtAttribute($date) {
    return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('H:i:s');
}

出力は時間になります

この例では、php関数explode(separator,string)を使用する必要があると思います。$date = 2018-02-12 02:00

$ date_time = explode( ''、$ date);

$ date = $ date_time [0]; // 2018-02-12

$ time = $ date_time [1]; // 02:00

0
bp12
$model->created_at

これはEloquentマジックを使用し、作成日をCarbonオブジェクトとして返します。

0
AngryUbuntuNerd