cvb
21.08.2003, 11:05:36
Hallo,
ich habe ein unverständliches Problem. Ich schreibe gerade eine Zeiterfassung mit PHP und MySQL. Dort gibt es eine
Zeit von
Zeit bis
Pause
und aus diesen wird die Dauer errechnet. Wobei man auch nur die Dauer (als Dezimal) eingeben kann. Die Sachen werden berrechnet und die die Tabelle (MySQL) geschrieben. Alle Werte sind auf TIME gesetzt, außer Dauer, der verlangt ein Double.
Problem: Die Pause wird nicht richtig geschrieben. Hier das Skript:
//Berrechnung der Dauer anhand der Felder zeitvon/zeitbis - Pause
if($zeitvon!='' & $zeitbis!='')
{
$zeitbis = explode(":", $zeitbis);
$zeitbis = mktime($zeitbis[0],$zeitbis[1],0,1,1,1970);
$zeitvon = explode(":", $zeitvon);
$zeitvon = mktime($zeitvon[0],$zeitvon[1],0,1,1,1970);
$pause = explode(":", $pause);
//$pause[0] = gmdate("H", $pause[0]);
$pause = mktime($pause[0],$pause[1],0,1,1,1970);
$dauer = $zeitbis - $zeitvon - $pause;
$dauer = $dauer / 3600;
$zeitbis = date("H:i", $zeitbis);
$zeitvon = date("H:i", $zeitvon);
$pause = gmdate("H:i", $pause);
}
else
{
$zeitvon = '00:00:00';
$zeitbis = '00:00:00';
$pause = '00:00:00';
}
Was muss ich tun, damit die Dauer unter einer Stunde und über einer Stunde richtig erfasst wird?
ich habe ein unverständliches Problem. Ich schreibe gerade eine Zeiterfassung mit PHP und MySQL. Dort gibt es eine
Zeit von
Zeit bis
Pause
und aus diesen wird die Dauer errechnet. Wobei man auch nur die Dauer (als Dezimal) eingeben kann. Die Sachen werden berrechnet und die die Tabelle (MySQL) geschrieben. Alle Werte sind auf TIME gesetzt, außer Dauer, der verlangt ein Double.
Problem: Die Pause wird nicht richtig geschrieben. Hier das Skript:
//Berrechnung der Dauer anhand der Felder zeitvon/zeitbis - Pause
if($zeitvon!='' & $zeitbis!='')
{
$zeitbis = explode(":", $zeitbis);
$zeitbis = mktime($zeitbis[0],$zeitbis[1],0,1,1,1970);
$zeitvon = explode(":", $zeitvon);
$zeitvon = mktime($zeitvon[0],$zeitvon[1],0,1,1,1970);
$pause = explode(":", $pause);
//$pause[0] = gmdate("H", $pause[0]);
$pause = mktime($pause[0],$pause[1],0,1,1,1970);
$dauer = $zeitbis - $zeitvon - $pause;
$dauer = $dauer / 3600;
$zeitbis = date("H:i", $zeitbis);
$zeitvon = date("H:i", $zeitvon);
$pause = gmdate("H:i", $pause);
}
else
{
$zeitvon = '00:00:00';
$zeitbis = '00:00:00';
$pause = '00:00:00';
}
Was muss ich tun, damit die Dauer unter einer Stunde und über einer Stunde richtig erfasst wird?