php 如何在laravel 5中检查当前日期是否在两个日期之间4

mec1mxoz  于 2023-04-28  发布在  PHP
关注(0)|答案(4)|浏览(240)

我有table

+---------------------+-----------
    | 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();

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

sbdsn5lh

sbdsn5lh1#

在这里,你可以使用laravel**whereRaw()**来实现这一点。
就像这样

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

bkhjykvo2#

你可以使用Carbon原生函数来实现:
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)
f45qwnt8

f45qwnt83#

如果你只想使用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);

手动确定日期。

gkl3eglg

gkl3eglg4#

->where('start_date', '<=', $date)
 ->where('end_date', '>=', $date)->exists();

相关问题