У меня есть StartDate и EndDate текущего месяца. Я хочу сравнить записи базы данных каждой даты, которые находятся между этими двумя датами - PullRequest
0 голосов
/ 04 июня 2019

Я хочу получить все записи текущего месяца и сравнить каждую дату с колонкой созданной_каткой.Если записи доступны на определенную дату, отобразите эти записи.У меня есть StartDate и EndDate, и я хочу, чтобы записи каждого дня сравнивались с датой каждого дня, а затем, если записи доступны, отображаются.Как это сделать. Я пытался с некоторым запросом.Но это не работает ..

//Display TAT Reports
public function reports() {

//Each date from current month     
for ($i = 1; $i <= date('t'); $i++) 
{
 $dates[] = date('Y') . "-" . date('m') . "-" . str_pad($i, 2, '0',STR_PAD_LEFT);
 }
$now = Carbon::now();
$monthStartDate = $now->startOfMonth()->format('Y-m-d'); //start date of month
$monthendDate = $now->endOfMonth()->format('Y-m-d'); //enddate of month

$recordsOnMonthlyBasis = DB::table('pickups')->select('tat', 'completed_at')
                            ->whereNotNull('tat')
                            ->whereDate('completed_at', '>=', "$monthStartDate")
                            ->whereDate('completed_at', '<=', "$monthendDate")->get()->toArray();
}

, если я напечатаю $recordsOnMonthlyBasis, тогда будут отображаться все записи между начальной и конечной датой.но я хочу, чтобы записи каждого дня сравнивались с датой в БД.

Любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 04 июня 2019

Изменить запрос.

$now = Carbon::now();
$monthStartDate = $now->startOfMonth()->format('Y-m-d'); //start date of month
$monthendDate = $now->endOfMonth()->format('Y-m-d'); //enddate of month

$recordsOnMonthlyBasis = DB::table('pickups')->select('tat', 'completed_at')
                        ->whereNotNull('tat')
                        ->whereBetween('completed_at',[$monthStartDate,$monthendDate])
                        ->get()->toArray();
0 голосов
/ 04 июня 2019

Попробуйте с этим,

$fromDate1 = \Carbon\Carbon::parse($fromDate);
$toDate1 = \Carbon\Carbon::parse($toDate);

for ($fromDate1; $fromDate1 <= $toDate1; $fromDate1->addDays(1)) {
    // Your code 
}

Возьмите from date и сделайте цикл до end date и добавьте один день на каждую итерацию.

Надеюсь, это поможет:)

0 голосов
/ 04 июня 2019

Вы можете добавить этот запрос для получения ежедневных записей.

 DB::table('pickups')->where(DB::raw("(DATE_FORMAT(completed_at,'%Y-%m-%d'))"), '=', Carbon::today()->format('Y-m-d'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...