Stundenlohnberechnung - WIE?

fatnmad

Grünschnabel
Hi all!

ich habe eine schöne datenbank, in der ich die Stunden, die jeder Mitarbeiter geleistet hat, eintrage bzw. eintragen lasse...

nun möchte ich ein script haben, welches aus:

HTML:
spalte "Beginn": 18 (uhr)
spalte "Ende": 02 (uhr)

die komplett geleisteten Stunden zusammenzählt (am jeweiligen tag) also:

HTML:
8 Stunden

danach wird einfach die gesamtzahl der stunden (z.b. 52) mit einem variablem satz verrechnet (z.b. 52 * 6,13€ = 318,76€)



meine frage nun: wie kann mein script aus 18 - 02 Uhr diese 8 h machen? also wie rechnet man das?

selbst mit excel steh ich da vor nem problem (!)


greetz...
 
Hi,

wie werden den die Uhrzeiten in der DB gespeichert, als Zahl oder als Uhrzeit?

Wenn es als Zahl gespeichert wird, müsstest Du (meiner Meinung nach) das ganze ins DateTime Format umstellen.

Damit kannst Du dann rechnen :
PHP:
$t1 = "2007-04-10 18:00:00";
$t2 = "2007-04-11 02:00:00";

$t3 = "2007-04-08 10:00:00";
$t4 = "2007-04-08 15:00:00";

$tag1 = date("H:i", (strtotime($t2) - strtotime($t1) - 3600));
echo "Stunden Tag 1 : " .$tag1 ."<br>";
$tag2 = date("H:i", (strtotime($t4) - strtotime($t3) - 3600));
echo "Stunden Tag 2 : " .$tag2 ."<br>";

echo "Gesamtstunden Tag 1 + 2 : " .date("H:i", (strtotime($tag1 + $tag2)));

Gruss Thomas
 
Hi
danke schonmal!

ich will es mit den Daten wie Du es gemacht hast

Aber leider gibts bei der ganzen sache ein paar Probleme:
- Zusammenrechnen funktioniert nicht richtig (2x 8 Stunden werden zu "01:00")
- Und bei "ungeraden Zahlen" so wie 18:16:35 wird beim verrechnen mit dem Stundenlohnsatz kein unterschied gemacht zu 18:00:00


Wenn es eine andere Möglichkeit gibt, Stunden zu verwalten (ein-/Ausstempeln) - bitte her damit :rolleyes:
 
Hallo,

mach aus den zwei Zeiten einen Timestamp, rechne diese Minus, dann hast du logischerweise deine Arbeitszeit in Sekunden.
Diese musst du dann nur noch in Stunden und Minuten runden und entsprechend berechnen lassen (es sei denn du willst eine sekundengenaue Abrechnung).
Wenn du das Ganze z.B. minutengenau haben willst dann währe ja die Formel:
(differens / 60)* (stundensatz/60)

Gruss
Mofu

PS: Geht übrigens in PHP und Exel :-)

PS2: Logischweise solltest du natürlich die Minutenanzahl auf-/abrunden, z.B. in 15 Min-Blöcke (oben das Beispiel "minutengenau" ist sicherlich nicht praxisgerecht)
 
Zuletzt bearbeitet:
Hi,

falls es dich interessiert. In Excel ist es auch relativ leicht. Du musst einfach die Zellen richtig formatieren. Zellen markieren und dann auf Format-->Zellen und dort auf Uhrzeit stellen. Darunter kannst dann einfach zum Beispiel in feld A3 [=A2 - A1]

Dann hast die Stunden ;-)
 
Hey! Danke für den tipp!

funktioniert super:
PHP:
<?
// Stundenlohn
$satz = 6;
// Lohn
$tag1 = mktime (18,0,0,4,11,2007);
$tag2 = mktime (02,0,0,4,12,2007);

$stunden = $tag2-$tag1;
echo "Stunden: ".$stunden/3600;
echo "<br>Lohn: ".($stunden/60)*($satz/60);
?>


irgendein logik-fehler drin?
 
ne ne... die eingegebenen zahlen werden natürlich über variablen eingegeben und verändern sich je nachdem, wessen schicht zu welchem zeitpunkt berechnet wird.


danke!

-> Erledigt!
 
Zurück