Search code examples
phplaraveldatetimecomparephp-carbon

Carbon Date Time Hours Comparison


How do I compare the hours between these two?

$today = Carbon::now(new \DateTimeZone('Asia/Jakarta'))->toDateTimeString();

and

$last = EmergencyOrder::select('CreatedDate')
  ->orderBy('CreatedDate', 'desc')
  ->first();

Solution

  • From Carbon Docs

    $today =  Carbon::now(new \DateTimeZone('Asia/Jakarta'));
    $last = Carbon::parse(EmergencyOrder::select('CreatedDate')
                        ->orderBy('CreatedDate', 'desc')
                        ->first()->CreatedDate); //if there are no records it will fail
    
    //Check for equal
    var_dump($today->eq($last));                     // bool(false)
    //Check for not equal
    var_dump($today->ne($last));                     // bool(true)
    //Check $today > $last
    var_dump($today->gt($last));                     // bool(false)
    //Check $today >= $last
    var_dump($today->gte($last));                    // bool(false)
    //Check $today < $last
    var_dump($today->lt($last));                     // bool(true)
    //Check $today <= $last
    var_dump($today->lte($last));                    // bool(true)
    

    And if you need the difference

    $today->diffInHours($last);
    $today->diffInMinutes($last);
    $today->diffInDays($last);