タイムスタンプが2つあります。edited_at(私が作成したもの)とcreated_at(Laravelのもの)です。データベースでは、どちらもtimestamp型でデフォルト値は0000-00-00 00:00:00です。しかし
var_dump(edited_at variable)
は文字列を返します。一方、var_dump(created_at variable)
はオブジェクト/Carbonです。これらのタイムスタンプの何が問題なのでしょうか?
format('U') を使用して整数に変換した後、両方を比較する必要があります。このメソッドは Carbon オブジェクトでのみ呼び出すことができます。どうすればいいですか?
ベストアンサー1
まず、Eloquent はタイムスタンプ ( created_at
、updated_at
) を Carbon オブジェクトに自動的に変換します。updated_at
この便利な機能を利用するには、 を使用するか、edited_at
モデルの プロパティで を指定してください$dates
。
protected $dates = ['edited_at'];
さて、実際の質問に戻りましょう。Carbon には、次のような比較関数がたくさんあります。
eq()
等しいne()
等しくないgt()
より大きいgte()
より大きいか等しいlt()
未満lte()
以下または等しい
使用法:
if($model->edited_at->gt($model->created_at)){
// edited at is newer than created at
}