У меня есть цикл while, который показывает 5 дней. Первый день – текущий день, а остальные – следующий 4. Это мой код:
$datetime = new \DateTime(); $listItem = array('<li class="active">', '</li>'); $i = 0; while (true) { if ($i === 5) break; if ($datetime->format('N') === '7' && $i === 0) { $datetime->add(new \DateInterval('P1D')); continue; } echo $listItem[0] . $datetime->format('D d-m') . $listItem[1]; $listItem = array('<li>', '</li>'); $datetime->add(new \DateInterval('P1D')); $i++; }
Результат выглядит следующим образом:
Моя проблема: я хочу, чтобы текущий день был посередине. Где суббота должна быть в текущий день. Вы знаете, как это сделать?
Заранее спасибо.
Пожалуйста, попробуйте приведенный ниже код:
$datetime = new \DateTime(); $listItem = array('<li">', '</li>'); $listItem_active = array('<li class="active">', '</li>'); $i = 0; while (true) { if ($i === 5) break; if ($datetime->format('N') === '7' && $i === 0) { $datetime->add(new \DateInterval('P1D')); continue; } if($i===0){ $today = $datetime->format('D d-m'); } if($i===3){ echo $listItem_active[0] . $today . $listItem_active[1]; } if($i!=0){ echo $listItem[0] . $datetime->format('D d-m') . $listItem[1]; } $listItem = array('<li>', '</li>'); $datetime->add(new \DateInterval('P1D')); $i++; }
$datetime = new \DateTime(); $datetime->modify('-2 Day');
Вы могли бы просто вычесть 2 дня с вашего начального дня, как это.
$datetime = new \DateTime(); $datetime->sub(new \DateInterval('P2D'));