首页 > 解决方案 > 如何比较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);

标签: phplaravel

解决方案


当你用 Carbon 解析了两个日期后,就很简单了,你只需要使用 Carbon 方法:

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

在你的情况下:

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

只需点击我发送给您的 Carbon Link,您将看到所有可用的比较方法:

其他方法:

$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)

推荐阅读