Ich habe eine Datenbanktabelle volle Zeitaufzeichnungen und ich brauche die Menge der Stunden zu berechnen, die zwischen ihnen bestehenden ...Time Aufzeichnung Berechnungen in PHP
Ein Rekord hat die folgenden Felder: 'created'
(dh 2017: 08:30 11:15:00) und 'direction'
(dh 1 steht für "clock in" und "0" für "clock out"). Also muss ich ein Start- und Enddatum festlegen, dann alle Zeitdatensätze innerhalb dieses Zeitrahmens auswählen und die Anzahl der geleisteten Stunden berechnen (die Anzahl der Stunden, die zwischen den Datensätzen direction=0
und direction=1
liegen).
Irgendeine Idee, wie man die Logik dafür herstellt? Das Ergebnis muss ein Maß für "Stunden" im Dezimalformat sein (1 Dezimalstelle, d. H. "26 .7" Stunden).
ich durch Gründung Variablen gestartet:
$query_start_date = "2017-08-29 00:00:00";
$query_end_date = "2017-08-30 23:59:59";
Lassen Sie uns diese die Zeitaufzeichnungen sind davon ausgehen, dass in diesem Zeitrahmen bestehen:
time record 1: 'created'="2017-08-29 08:00:00", 'direction'=1;
time record 2: 'created'="2017-08-29 16:30:00", 'direction'=0;
time record 3: 'created'="2017-08-30 08:00:00", 'direction'=1;
time record 4: 'created'="2017-08-30 16:00:00", 'direction'=0;
Aber ich weiß nicht, wie die Berechnung zu beginnen. Wählt ich zuerst die Datensätze aus und weise jeden Datensatz einer Variablen als Array zu ...? Jede Hilfe wird geschätzt!
ich nicht die 'Richtung erhalte '-Param. Wenn Sie eine Start- und eine Endzeit haben, warum haben Sie nicht nur zwei Spalten? –
Sind die Datensätze immer in der Reihenfolge der Richtung 1, 0, 1, 0, 1, 0 ... Gibt es Löcher? (zB: zwei aufeinanderfolgende Nullen? – BeetleJuice
Ja, Datensätze werden immer abwechselnd angezeigt, entweder 0, 1, 0, 1 oder 1, 0, 1, 0, je nachdem, wo die Linie mit dem Start-/Enddatum gezeichnet wurde –