2つのカーボンタイムスタンプを比較するにはどうすればいいですか? 質問する

2つのカーボンタイムスタンプを比較するにはどうすればいいですか? 質問する

タイムスタンプが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_atupdated_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
}

おすすめ記事