2017-11-01 14 views
3

私はこのことで非常に混乱しています。今日が過去の日であるかどうかを確認したい場合は、このようなことができるはずですか?Laravel Carbon日付が過去のものかどうかを確認してください

if($league->date_start <= Carbon::now()){ 
    $join = false; 
    $message = 'Sorry, the league has already started'; 
} 

私は日付をダンプ場合、私は$league->date_start >= Carbon::now()に切り替えた場合、それが動作し、文句を言わない、

その炭素インスタンスので、しかし、このdoesntの仕事その

$league->date_start = 2017-07-31 00:00:00 
Carbon::now() = 2017-11-01 16:29:27 

$league->date_startが保護された日付です私に参加させてください。私は "リーグ"開始日が過去であることを知っているので、それは$league->date_start <= Carbon::now() ?????

答えて

6

あり、内蔵の二酸化炭素法isPastので、あなたが使用することができます。

$league->date_start->isPast() 

を日付が過去にあるか

かどうかを判断します
+0

これははるかに簡単で、読みやすいです。ありがとう – Packy

1

carbon docsの「比較」セクションを確認してください。 2つのカーボンインスタンスを比較するには、$first->lte($second)に電話する必要があります。

+0

ありがとうございます。これはうまくいった。技術的にも私の仕事は、それをブロックしていたコードのちょうど悪いチャックがあった – Packy

1

if ($league->date_start->diffInSeconds() >= 0)を試してください。メソッドdiffInSecondsは、現在の時間とカーボンインスタンスの差を返します。ここで

はティンカーからの出力の例です -

>>> $now = \Carbon\Carbon::now(); 
=> Carbon\Carbon {#648 
    +"date": "2017-11-01 16:41:04.000000", 
    +"timezone_type": 3, 
    +"timezone": "UTC", 
    } 
>>> $now->diffInSeconds(); 
=> 5 
>>> $now->diffInSeconds(); 
=> 7 
>>> $now->diffInSeconds(); 
=> 8 
>>> $now->diffInSeconds(); 
=> 10 
>>> $now->diffInSeconds() > 0 
=> true 
関連する問題