Это, вероятно, что-то ДЕЙСТВИТЕЛЬНО простое, но это делает мою голову!
Я не кодер - так что это сложено воедино из того, что я узнал - это говорит о том, что все работает как есть, кроме одногостранная проблема ....
Я заполняю массив для экспорта в JSON, но добавляю все даты, отсутствующие в запросе SQL.
ВСЕ работает, КРОМЕ переменной datetime в2-ой цикл «WHILE»!?!?
Цикл работает как положено - он повторяет правильное количество раз и добавляет правильную строку в массив ....
while ($nt = $result->fetch_assoc())
{
$temp = array();
$day = new DateTime();
$day->setTimestamp(strtotime($nt['day']));
$day->format('U = d/m/Y');
if ($day < $firstdate) {
$firstdate = $day;
}
// WHILE LOOP INCREMENTS CORRECTLY... so $firstdate is incrementing....
while ($day > $firstdate) {
// THIS LINE DOESNT SHOW THE INCREMENTED DATE?
$temp[] = array('v' => $firstdate->format('d/m/y'), 'f' =>NULL);
$temp[] = array('v' => intval(0), 'f' =>NULL);
$rows[] = array('c' => $temp);
$firstdate->add(new DateInterval('P1D'));
}
// THIS LINE DISPLAYS IT CORRECTLY!
$temp[] = array('v' => $firstdate->format('d/m/y'), 'f' =>NULL);
$temp[] = array('v' => intval($nt['output']), 'f' =>NULL);
$rows[] = array('c' => $temp);
$firstdate->add(new DateInterval('P1D'));
}
Вывод, который я получаю из вышеприведенного, выглядит примерно так (см. Рис. В конце для реальных результатов!):
Что я получаю ---> 26/10/19 27 ------>Правильно
Что я получаю ---> 27/10/19 0 ------> Правильно
Что я получаю ---> 27/10/19 0 ------> Ожидается "28/10/19 0"
Что я получу ---> 27/10/19 0 ------> Ожидаем "29/10/19 0"
Что я получаю ---> 30/10/19 25 ------> Правильно
Что я получаю --> 31/10/19 0 ------> Правильно
Что я получу ---> 01/11/19 45 ------> Правильно
Итак«$ firstdate» инкрементно увеличивается, но когда я записываю его в массив, оно все еще имеет старое значение? Но только в цикле while? !!?
Все это выгружается в JSON и читается в Google Charts - где отображается