2016-05-06 3 views
0

У меня есть странная проблема, связанная с массивом PHP, которую я пытаюсь диагностировать. У меня есть сценарий, который читает температуры из SQL-базы данных, а затем отображает их через PHPgraphlib. Я беру отметку времени эпохи unix из запроса базы данных и преобразую ее в удобочитаемую форму. Это используется как ключ в массиве, в котором хранятся температуры. Так, в целом у меня есть следующие в циклеОшибка массива массива PHP/проблема

$unix_time = $row['DATE_TIME']; 
$human_date = date("md.h:i",$unix_time); 
$temp_array[$human_date] = $row['CURRENT_TEMP']; 

Я тогда отображения результатов, используя phpgraphlib: -

$graph->addData($temp_array); 

Это отображает температуру на оси у против человеческих считываемых меток времени на Икс.

Кажется, что все нормально, до 12 полдень, когда он перестает отображать данные с отметкой времени после 1200, затем перезапускается после 0000. Это очень странно. Точно так же, если я просто использую временную метку unix epoch (например, 1459799541) в качестве ключа, данные отображаются.

Есть ли ограничение на длину ключа, который я переполняю после полудня/с длительным временем эпохи unix? Любая помощь очень ценится!

+3

Я не знаю 'phpgraphlib', но' h' составляет 1-12, так что 12 полдень и 12 полуночи такие же, как и все остальные AM и PM. Это делает дубликаты ключей, которые не разрешены. Попробуйте использовать «H» в течение 24 часов и посмотрите, работает ли он. – AbraCadaver

+0

Хорошо старый print_r и посмотрите на свой массив. Вы можете дважды проверить предложение AbraCadaver –

+0

И ....... Приговор есть? – AbraCadaver

ответ

1

Я не знаю phpgraphlib или что он ожидает от данных, но h - это 12-часовое время, требующее AM или PM, чтобы различать. 12 PM (полдень) и 12 AM (полночь) совпадают с другими AM и PM. Это может сделать дубликаты ключей, которые не разрешены, поэтому вы можете получить только один. Кроме того, phpgraphlib может запутаться, если он получает данные с 12-11, а затем снова 12.

Попробуйте использовать H на 24 часа и посмотрите, работает ли он "md.H:i".

Не знаете, почему временная метка не работает.

Смежные вопросы