Zeitberechnung in PHP?

2 Antworten

Hi TrucksLOG,

das geht relativ entspannt wenn man die Anfangszeit und Endzeit in Unix-Zeit umwandelt um dann die Differenz zu berechnen, das wiederum in Stunden und Minuten umgewandelt wird. Hier mein Beispiel:

<?php
// Angenommen, die Zeiten kommen als POST-Request rein
// Daten werden nicht geprüft bzw. validiert für diese Beispiel
$startTime = $_POST['start_time']; // z. B. "08:30"
$endTime = $_POST['end_time']; // z. B. "17:15"
// Zeitangaben in UNIX-Timestamp umwandeln
// Ich arbeite gerne mit UNIX-Zeit und wandle diese später einfach um
$startTimestamp = strtotime($startTime);
$endTimestamp = strtotime($endTime);
// Berechnung der Differenz in Sekunden, damit wir die Differenz erhalten und diese nutzen können
$diffInSeconds = $endTimestamp - $startTimestamp;
// Umrechnung in Stunden und Minuten: Berechnung auch mit Modulo-Operator, das den Rest der Division berechnet
$hours = floor($diffInSeconds / 3600);
$minutes = floor(($diffInSeconds % 3600) / 60);
// Ausgabe des Ergebnisses als String
echo "Gearbeitete Zeit: $hours Stunden und $minutes Minuten";
?>

Viel Erfolg ;-)

Woher ich das weiß:Berufserfahrung – Ich bin gelernter Mediengestalter Digital und Print(IHK)

Rechne dir doch erst einmal die tatsächliche Arbeitszeit in Minuten um:

$totalMinutesDiff = $differenz->h * 60 + $differenz->i;

Und anschließend kannst du diesen Wert mit 450 (7 * 60 + 30) subtrahieren.

$totalMinutesDiff - 450;

Dann hast du die Anzahl an Minuten, die entweder fehlen oder zusätzlich geleistet wurden.