Прошлая неделя начинается с:
13 мая 2019 года (понедельник) до 19 мая 2019 года (воскресенье)
Эта неделя начинается с:
с 20 мая 2019 года (с понедельника по 26 мая 2019 года (воскресенье)
В базе данных у меня есть такие записи:
task_id c_date
1 2019-05-14
2 2019-05-16
3 2019-05-13
4 2019-05-17
5 2019-05-19
6 2019-05-21
7 2019-05-23
8 2019-05-24
9 2019-05-24
ожидаемый вывод будетбыть похожим на 1,2,3,4,5 записей прошлой недели
то, что я пробовал: (подход 1-й)
$dt = new DateTime;
$dt->setISODate($dt->format('o'), $dt->format('W') - 1);
$year = $dt->format('o');
$week = $dt->format('W');
$this_week = array();
do {
echo '<span>' . $dt->format('l') . " " . $dt->format('d M Y') . "</span></br>\n";
// $date_sheet = $dt->format('Y-m-d');
// array_push($this_week, $date_sheet);
$dt->modify('+1 day');
} while ($week == $dt->format('W'));
Вывод:
Monday 13 May 2019
Tuesday 14 May 2019
Wednesday 15 May 2019
Thursday 16 May 2019
Friday 17 May 2019
Saturday 18 May 2019
Sunday 19 May 2019
Я предпочитаю это, но проблема в том, что я не могу понять, как извлечь запись из этого подхода из БД, поэтому я пытался найти Альтернативу, и я думал, что это намного лучше, ноне знаю, как это сделать
Альтернативный подход (2-й):
$now =date("d-m-Y");
select * from tasks where `c_date` = DATE_SUB('.$now.', INTERVAL 7 DAY )
Ничего не понимаю, я уверен, что делаю полностью внеправильный путь.Любая помощь приветствуется.