I have database table form like this:
|ID|Vehicle|Date_start|Date_end|Status|
|1|A|2021-01-17 12:00:00|2021-01-18 13:00:00|Finish|
|2|B|2021-01-19 12:00:00|2021-01-21 12:00:00|In Use|
Then, i have code like this:
$datestart = '2021-01-19 '.Date("H:i");
$dateend = '2021-01-20 '.Date("H:i");
$cek =Peminjamanrandis::where('status','!=',"Cancel")
->where('status','!=','Selesai')
->where('status','!=','Pengajuan Peminjaman')
->where('status','!=','Tidak Disetujui')
->where(function ($query) use($datestart,$dateend) {
$query->whereBetween('date_start',[$datestart,$dateend])
->orwhereBetween('date_end',[$datestart,$dateend]);
})
->where(function ($query) use($datestart) {
$query->where('date_start', '<=', $datestart)
->orWhere('date_start', '>=',$datestart);
})
->where(function ($query) use($dateend) {
$query->where('date_end', '<=', $dateend)
->orWhere('date_end', '>=',$dateend);
})
->get(['id_randis']);
Then I have a form input that received date start and date end.
Problem : when users input date start = 2021-01-19 and date end = 2021-01-20 or date start =2021-01-20 and date end= 2021-01-20. It shows nothing.
My goals is when user input like that, it shows vehicle B (ID 2). How can I do that?