2016-05-06 8 views
0

Ich habe ein seltsames Problem in Bezug auf eine PHP-Array, die ich zu diagnostizieren kämpfen. Ich habe ein Skript, das Temperaturen aus einer SQL-Datenbank liest und sie dann über PHPgraphlib anzeigt. Ich nehme den Unix-Epochen-Zeitstempel von der Datenbankabfrage und wandle ihn in eine für Menschen lesbare Form um. Dies wird als Schlüssel in dem Array verwendet, in dem die Temperaturen gespeichert werden. So in der Zusammenfassung habe ich folgend in einer SchleifePHP-Array-Schlüssel Fehler/Problem

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

ich dann die Ergebnisse angezeigt werden, phpgraphlib mit: -

$graph->addData($temp_array); 

Dies zeigt die Temperaturen auf der y-Achse gegen die Menschen lesbaren Zeitstempel auf dem x.

Dies scheint gut zu funktionieren, bis 12 Uhr mittags, wenn es keine Daten mit einem Zeitstempel nach 1200 anzeigt, dann startet es nach 0000 neu. Das ist sehr seltsam. Wenn ich einfach den Unix-Epochen-Zeitstempel (etwa 1459799541) als Schlüssel verwende, werden Daten angezeigt.

Gibt es ein Limit für die Länge des Schlüssels, den ich nach Mittag/mit der langen Unix-Epoche überschreite? Jede Hilfe sehr geschätzt!

+3

Ich weiß nicht 'phpgraphlib', aber' h' ist 1-12, also 12 Uhr mittags und Mitternacht sind die gleichen wie alle anderen AM- und PM-Zeiten. Dies macht doppelte Schlüssel, die nicht erlaubt sind. Versuchen Sie es 24 Stunden lang mit "H" und sehen Sie, ob es funktioniert. – AbraCadaver

+0

Guten alten print_r und schauen Sie sich Ihr Array an. Sie können AbraCadavers Vorschlag überprüfen –

+0

Und ....... Das Urteil ist? – AbraCadaver

Antwort

1

Ich weiß nicht, phpgraphlib oder was erwartet es für Daten, aber h ist 12 Stunden Zeit brauchen AM oder PM zu unterscheiden. 12 Uhr (12 Uhr) und 12 Uhr (Mitternacht) sind die gleichen wie alle anderen AM- und PM-Zeiten. Dies kann doppelte Schlüssel machen, die nicht erlaubt sind, so dass Sie nur einen bekommen. Auch phpgraphlib kann verwirrt werden, wenn es Daten von 12-11 und dann wieder 12 erhält.

Versuchen Sie es mit H für 24 Stunden und sehen, ob es funktioniert "md.H:i".

Nicht sicher, warum der Zeitstempel nicht funktioniert.