Я должен заполнить свой график числом посетителей, но при отображении данных текущей недели я получил значение следующих дней равным 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 часа не могу понять, как это сделать.
Спасибо за помощь.
С использованием Дата и время а также 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;
$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.