如何检查当前日期是在laravel 5.4中的两个日期之间

问题描述 投票:1回答:3

我有一张桌子

    +---------------------+-----------
    | id | start_date     |  End_date |
    +---------------------+-----------+
    |   1  | 2017-07-07   | 2017-07-31|
    |   2  | 2017-08-01   | 2017-08-31|
    |   3  | 2017-09-01   | 2017-09-10|
    |  
    +------+--------------+-----------+

我想选择两个日期之间的日期。我有一个查询

 SELECT * FROM Financial_Year WHERE CURDATE() between `start_date` and `End_date`

我想将此查询转换为laravel,所以我尝试了这个

 $dt = Carbon::now();
 $getmonths= DB::table('Financial_Year')
                    ->whereBetween($dt, ['start_date', 'End_date'])->get();

但我没有得到输出。任何帮助将不胜感激。

php mysql laravel
3个回答
3
投票

在这里你可以使用laravel whereRaw()来实现这一点。

像这样

$dt = Carbon::now();
$getmonths= DB::table('Financial_Year')
    ->whereRaw('"'.$dt.'" between `start_date` and `End_date`')
    ->get();

1
投票

你可以使用Carbon native函数:

http://carbon.nesbot.com/docs/

$first = Carbon::create(2012, 9, 5, 1);
$second = Carbon::create(2012, 9, 5, 5);
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second));  // bool(true)
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second));  // bool(true)

0
投票

如果您只想使用Laravel Query Builder,您可以尝试:

$date_start = Carbon::now()->startOfYear();
$date_end = Carbon::now()->endOfYear();

$query = Model::where('created_at', '<=', $date_end)
        ->where('created_at', '>=', $date_start)
        ->get();

在date_start和date_end的变量中,您将放置要使用的范围。也许是在同一个月,在同一年或你可以使用:

$date = Carbon::create(2012, 9, 5, 5);

手动确定日期。

© www.soinside.com 2019 - 2024. All rights reserved.