如何在laravel中获取最近30天的数据?

如何在laravel中获取最近30天的数据?,laravel,eloquent,Laravel,Eloquent,我正在查询过去30天的数据,但没有得到预期的结果。今天是2021-01-18,最后三天的日期是2021-01-18,但我只获取本月和本年的数据,而不是12月的数据。我如何获取? 我的代码是 $startDate = \Carbon\Carbon::now()->subDays(30); $endDate = \Carbon\Carbon::now(); return Auth::user()->invoices() ->whereBetween(&quo

我正在查询过去30天的数据,但没有得到预期的结果。今天是2021-01-18,最后三天的日期是2021-01-18,但我只获取本月和本年的数据,而不是12月的数据。我如何获取? 我的代码是

$startDate = \Carbon\Carbon::now()->subDays(30);
$endDate = \Carbon\Carbon::now();
    return Auth::user()->invoices()
        ->whereBetween("invoice_date", [$startDate, $endDate])
        ->orderBy('created_at', 'DESC')
        ->get();
还可以尝试其他类似的解决方案

$date = \Carbon\Carbon::now()->subDays(30);
    return Auth::user()->invoices()
        ->whereDate("invoice_date", '>=', $date)
        ->orderBy('created_at', 'DESC')
        ->get();
获取与我的数据库表数据相同的输出

显示出来的是


试试这个,也许它对你有帮助我使用了日期函数而不是碳,它会给你你想要的时间

date("Y-m-d", strtotime( date( "Y-m-d", strtotime( date("Y-m-d") ) ) . "-1 month" )

\Carbon\Carbon::now()->subDays(30)
2020-12-19
不是
2020-12-18
这就是为什么您在
2020-12-19
之前没有得到任何结果的原因。您可以设置此查询吗?我如何获得它。谢谢为什么?这是正确的行为。今天前30天是2020-12-19,但我得到了错误的结果。这次我在数据库中有多条记录。2021-01-112021-01-181020-12-182021-01-01我只得到2021-01-112021-01-182021-01-01表示今年和月份非隐私年和月份mysql中的
invoice\u date
字段的数据类型。您是否使用了时间戳(或日期时间)或varchar?谢谢您的回答。我的代码运行良好。这是我的错,因为我符合12月18日、17日……的记录。。。。但从今天起到12月19日结束的50天私生活。