私はLaravelフレームワーク内のCarbon機能にまだ苦労しています。テーブルで "created_at"フィールドの日付を抽出するためにモデルで使用されるこれらの関数を作成しました:
public function getCreatedAtAttribute($date) {
return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('d.m.Y');
}
これは日付に対してうまく機能しますが、created_atフィールド内の時間のみを抽出するこのモデルで関数をどのように記述する必要がありますか?
日付のデフォルトの動作をオーバーライドすることで、自分を大幅に制限しているように感じます。
アクセサー(getCreatedAttribute
)を削除すると、プロパティ自体からformatを呼び出すことができます。
$model->created_at->format('d.m.Y')
または
$model->created_at->format('H:i:s');//e.g. 15:30:00
Carbon
はDateTime
の単なるラッパーです。フォーマット文字のリストについては、次の場所を参照してください。 http://php.net/manual/en/function.date.php e.g. 2016年2月6日の今日の日付はjS F Y
お役に立てれば!
使ってみる
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
$model->created_at
これはEloquentマジックを使用し、作成日をCarbonオブジェクトとして返します。