Arbeitszeit (netto) berechnung

EuroCent

Klappstuhl 2.0
Guteb Abend,

ich steh irgendwie gereade auf dem Schlauch :D

Ich möchte folgendes machen:
Aus 06:00 - 14:12 - 0,5 => 7,7 Arbeitszeit
Über ein Formular lass Ich diese Zeit-Daten drüber laufen, dass heisst ein Mitarbeiter gibt die Zeiten an von 6 bis 14:12 Uhr. Daraus soll dann das Fomular erkennen, dass er mehr als 6 Stunden hat, somit 0.5 Pause abgezogen wird.

Resultat: 7,7 Arbeitsstunden

Mir geht es in erster Linie nicht um zu Prüfen wie wann eine Pause berechnet wird und wie, sondern rein um die Zeit Darstellung.

Die Berechnung sollte daher von 06:00 bis 14:12 => 8,12 ausgeben.
Das ist vorerst mein großes Problem, dies entsprechend in Dezimalzahlen aus zu lagern. :/

Irgendwie ist bei Mir da der Wurm drin.
Ich bekomme es einfach nicht gebacken die Werte in Dezimal umzuwandeln, gegen Seitig sich ab zu ziehen, so dass am Ende nur noch 8.20 über bleib.

Ziehe Ich dann die 0.5 (Pause) ab, sollte dann natürlich 7.7 Stunden übrig bleiben...

PS: Die Datensätze werden so gespiechert: 06:00:00, 14:12:00
 
PHP:
$von = new DateTime('06:00:00');
$bis = new DateTime('14:12:00');
$diff = $von->diff($bis, true);
$minuten = $diff->i;
$minutenDezimal = $minuten/60;
$stundenDezimal = $diff->h + $minutenDezimal;
var_dump($stundenDezimal);

oder dasselbe gekürzt
PHP:
$diff = (new DateTime('06:00:00'))->diff(new DateTime('14:12:00'), true);
$stundenDezimal = $diff->h + $diff->i/60;
var_dump($stundenDezimal);
 
Ja, die DateTime und DateInterval Klassen sind das beste um in PHP mit Datum zu arbeiten. Leider kennen noch viele Leute diese Klassen nicht.
 
Zurück