如何根据预定义的日期显示数据

How to display data based on a predefined date

$data_bulan = Bast::whereYear('tgl_bast', date('Y'))->whereMonth('tgl_bast', date('m'))->get();
if ($data_bulan) {
    return response()->json([
        'status'  => true,
        'message' => 'Data ditemukan',
        'data'    => [
            'data_mingguan' => [],
            'data_bulan' => $data_bulan
        ]
    ]);
} else {
    return response()->json([
        'status'  => false,
        'message' => 'Data tidak ditemukan',
        'data'    => []
    ]);
}

我这里有数据,数据是date_bast,现在我找到了一种方法可以根据这个月检索数据,如果过了这个月,数据就会丢失,这里我没有知道如何显示本周的数据,例如tgl_bast结束于2021-01-25 所以25号之前,25号前7天数据出现,25号之后数据就没有了。

您可以使用 MySQL 中的 DATEDIFF(expression1, expression2)。示例:SELECT * FROM bast WHERE DATEDIFF(CURRENT_DATE, tgl_bast) <= 7.

Eloquent 型号:

$data_bulan = Bast::where(DB::raw('DATEDIFF(CURRENT_DATE, tgl_bast)'), '<=', 7);

首先获取当前日期数据,然后获取当前日期数据加上 7 天,然后您可以在查询模型中使用 whereBetween。

$a = date('Y-m-d');
$b = date('Y-m-d',strtotime('+7 days'));
$range = [$a, $b];
        
$data_mingguan = Bast::whereBetween('tgl_bast', $range->orderBy('tgl_bast','asc')->get();