Laravel Carbon See if date is in the past

Packy picture Packy · Nov 1, 2017 · Viewed 25.9k times · Source

I am very confused by this, maybe its something simple I am not seeing. If I want to see if a date is in the past of today I should be able to do something like this?

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

if I dump out the dates its

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

$league->date_start is a protected date so its a carbon instance

But this doesnt work, if I switch it to $league->date_start >= Carbon::now() it works and wont let me join. I know the "league" start date is in the past so shouldnt it be $league->date_start <= Carbon::now()?????

Answer

Marcin Nabiałek picture Marcin Nabiałek · Nov 1, 2017

There's built-in Carbon method isPast so you can use:

$league->date_start->isPast()

to determine if date is in past or not