date — PHP получает следующие дни недели в зависимости от текущего дня недели

Я должен заполнить свой график числом посетителей, но при отображении данных текущей недели я получил значение следующих дней равным 0.

Например, сегодня понедельник, поэтому я получаю 2016-06-20 в качестве значения столбца, но имя значения следующего столбца равно 0, потому что у меня нет данных за следующие дни.

Индекс диаграммы должен быть таким:

|| 20 Jun 2016 || 21 Jun 2016 || 22 Jun 2016 || 23 Jun 2016 || etc.

И теперь я получил это:

|| 20 Jun 2016 || 1 Jan 1970 || 1 Jan 1970 || 1 Jan 1970 || etc.

Поэтому я попытался заполнить пропущенные дни с помощью этой функции:

function get_day($count) {
if ($count == NULL) {
$dweek = date("w");
for ($i = 1; $i <= 6; $i++) {
echo $i;
switch ($i) {
case 1:
$day = $dweek+1;
break;
case 2:
$day = $dweek+2;
break;
case 3:
$day = $dweek+3;
break;
case 4:
$day = $dweek+4;
break;
case 5:
$day = $dweek+5;
break;
case 6:
$day = $dweek+6;
break;
}
}
$current = date("d M Y",strtotime("+$day day"));
} else {
$current = date("d M Y",strtotime($count));
}
return $current;
}

Но используя это сейчас я получил:

|| 20 Jun 2016 || 27 Jun 2016 || 27 Jun 2016 || 27 Jun 2016 || etc.

Так что я что-то упускаю, но через 2 часа не могу понять, как это сделать.

Спасибо за помощь.

0

Решение

С использованием Дата и время а также datetime.modify :

$res = "|| ";

for ($d = 1; $d < 8; $d++) {
$dt = new DateTime();
$m = $dt->modify("+$d days");
$f = $m->format("d M Y");
$res .= $f . " || ";
}

echo $res;
1

Другие решения

$date = '2016-06-20'; //replace this by your date
$statement = '';
for($i = 0; $i < 7; $i++){
$statement.= ' || ' . date('d M y', strtotime("$date +$i day"));
}
echo $statement;

Теперь вы можете использовать свою дату вместо $ date.

DEMO

1

По вопросам рекламы [email protected]