как сравнить даты буксировки в ларавеле

#php #laravel

Вопрос:

Я сравниваю дату ввода с сегодняшним днем в контроллере Laravel :

 $start_date  =  Carbon::parse($request->get('start_date'))->format('Y-m-d');
    $today = Carbon::now()->format('Y-m-d');

    if ( $start_date  < $today  ){
        dd('smaller');
    }
    else {
        dd('bigger');
    }
 

этого достаточно ? или мне нужно использовать что-то вроде этого : $result = $start_date->lt($today);

Ответ №1:

Когда вы проанализировали обе даты с помощью углерода, это очень просто, вам просто нужно использовать углеродные методы:

https://carbon.nesbot.com/docs/#api-comparison

В вашем случае:

 if ( $start_date->lessThanOrEqualTo($today)  ){
    dd('smaller');
}
else {
    dd('bigger');
}
 

Просто нажмите на ссылку Carbon, которую я вам отправил, и вы увидите все доступные методы сравнения:

Другие методы:

 $first->setDateTime(2012, 1, 1, 0, 0, 0);
$second->setDateTime(2012, 1, 1, 0, 0, 0);         // Remember tz is 'America/Vancouver'

var_dump($first->equalTo($second));                // bool(false)
var_dump($first->notEqualTo($second));             // bool(true)
var_dump($first->greaterThan($second));            // bool(false)
var_dump($first->greaterThanOrEqualTo($second));   // bool(false)
var_dump($first->lessThan($second));               // bool(true)
var_dump($first->lessThanOrEqualTo($second));      // bool(true)

// All have short hand aliases and PHP equivalent code:

var_dump($first->eq($second));                     // bool(false)
var_dump($first->equalTo($second));                // bool(false)
var_dump($first == $second);                       // bool(false)

var_dump($first->ne($second));                     // bool(true)
var_dump($first->notEqualTo($second));             // bool(true)
var_dump($first != $second);                       // bool(true)

var_dump($first->gt($second));                     // bool(false)
var_dump($first->greaterThan($second));            // bool(false)
var_dump($first->isAfter($second));                // bool(false)
var_dump($first > $second);                        // bool(false)

var_dump($first->gte($second));                    // bool(false)
var_dump($first->greaterThanOrEqualTo($second));   // bool(false)
var_dump($first >= $second);                       // bool(false)

var_dump($first->lt($second));                     // bool(true)
var_dump($first->lessThan($second));               // bool(true)
var_dump($first->isBefore($second));               // bool(true)
var_dump($first < $second);                        // bool(true)

var_dump($first->lte($second));                    // bool(true)
var_dump($first->lessThanOrEqualTo($second));      // bool(true)
var_dump($first <= $second);                       // bool(true)