1. ホーム
  2. laravel

[解決済み] 2つのCarbon Timestampを比較するには?

2022-10-31 13:09:27

質問

私が作成したedited_atと、Laravelのcreated_atの2つのタイムスタンプがあります... データベースでは、両方ともタイムスタンプ型とデフォルト値0000-00-00 00:00:00を持っています... しかし

var_dump(edited_at variable) は文字列を与えています。一方 var_dump(created_at variable) はオブジェクト/カーボンです。これらのタイムスタンプは何が問題なのでしょうか?

format('U')を使って整数化した後、両方を比較する必要があります。このメソッドはCarbon Objectでしか呼び出せません。どうすればよいのでしょうか?

どのように解決するのですか?

まず、Eloquentはタイムスタンプを自動的に変換します( created_at , updated_at ) をカーボン・オブジェクトに変換します。単に 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
}