Hi, ich bin gerade dabei die Differenz zweier Uhrzeiten aus einer Datenbank zu berechnen. Die for-Schleife läuft auch das erste Mal durch, beim zweiten stimmt aber etwas mit den Dateitypen nicht. Hier der Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | $db = new PDO('sqlite:2.db'); $result = $db->query('select * from [tabel1];'); $hr=""; $dist=""; $myData = new pData(); foreach($result as $row) { $dist[] = $row['Distance']; $hr[] = $row['HR']; $id[] = $row['Id']; $sec[] = $row['Time']; } //Längendifferenz $dist_kl=""; $dist_length=count($dist)-1; //Zeitdifferenz $time_diff=""; for ($i=0; $i<$dist_length; $i++){ //H:i:s.u $zeit1=""; $zeit2=""; $zeit1 = $sec[$i]; $z=$i+1; echo gettype($zeit1); $zeit2 = $sec[$z]; echo gettype($zeit2); echo $zeit1; echo $zeit2; //Beide Zeiten in DateTime Objekte parsen $dt1 = DateTime::createFromFormat('H:i:s', $zeit1); $dt2 = DateTime::createFromFormat('H:i:s', $zeit2); echo gettype($dt1); $diff = $dt1->diff($dt2); $min=$diff->format('%i'); $sec=$diff->format('%s'); $time_diff[$i] = $min*60 + $sec; print $time_diff[$i]; print "\n"; print "\n"; } |
Dabei bekomme ich folgende Ausgabe:
1 2 3 4 5 | stringstring17:06:2717:06:29object2 PHP Notice: Uninitialized string offset: 1 in /var/www/gpspuls/kmh2.php on line 48 stringPHP Notice: Uninitialized string offset: 2 in /var/www/gpspuls/kmh2.php on line 51 stringbooleanPHP Fatal error: Call to a member function diff() on a non-object in /var/www/gpspuls/kmh2.php on line 65 |
Im zweiten Durchlauf stimmen der Datentyp von $dt1 nicht mehr, da anscheinen die Variablen $zeit1 und $zeit2 nicht richtig sind, aber warum ist das so?
Grüße und vielen Dank!