Zeit 00:00:00:00

GodWar

Erfahrenes Mitglied
Moin!

Mal eine Frage und zwar habe ich schonmal die aktuelle Zeit per time(H.i.s)! OK! Nun habe ich z.B. eine Bauzeit von 2 Minuten also 00:00:02:00. Was Tage, Stunden, Minuten Sekunden sind. Wie kann ich damit rechnen? Also die aktuelle Zeit + Bauzeit eines Gebäudes. Bauzeit würde ich am liebsten per timstampformat eingeben also 120 = 2 Minuten!
 
Ja klar!

Die einzelnen Bauzeiten sind aber fest verankert! Und werden dann draufgerechnet! Mir gehts um die Anzeige von 00:00:02:00! Wenn 12 in der DB steht! ODer ähnliches. Der soll mir diese 8 Stellen so anzeigen in dem format durch ausgabe von 120 min!
 
Hallo,

Wie mein Vorposter schon sagt einfach die Zeit in Sekunden errechnen und auf den Aktuellen Timestamp Addieren.

Beispiel:
PHP:
<?php  
$timestamp = time(): # Hier den Timestamp aus einer DB holen ;)
$bauzeit = 2; # In Minuten!
$fertiggestellt = $timestamp+(60*$bauzeit);

echo 'Es ist '.date(H.i.s,$timestamp).' Uhr. Um '.date(H.i.s,$fertiggestellt).' Uhr ist der Bau Fertigestellt';

?>

so könnet man das Lösen allerdings muss man den $timestamp bzw. time() in einer DB speichern da sonst der Bau Quasi nie fertig wird ;)

MfG Funjoy
 
Jetzt habter mir die Rechnung schon abgenommen! ^^

Ich meine aber die anzeige von Minuten in dem Format 00:00:00:00 ;)
 
Hier ne Fuction eines Kollegen! Funtz prima bis auf das 1 Minute als 00:00:00:60 angezeigt wird usw! Jemand ne Idee?

PHP:
<?
/*Bauzeiten Anfang*/
function Transform_Bauzeit ($time)
{
$d=60 * 60 * 24;
$h=60 * 60;
$m=60;
$s=1;

$array = array("d","h","m","s");

for($i=0;$i<count($array);$i++){
if($time>$$array[$i])
{
$var=$time/$$array[$i];
$var=round($var,0);
	if(strlen($var) == '1')
	{ 
	$var = '0'.$var; 
	}
	${'var_'.$array[$i]}=$var;
	$time=$time - ( $var * $$array[$i] );
	} 
			else 
			{
			${'var_'.$array[$i]}='00';
			}
}
return ${'var_'.$array[0]}.':'.${'var_'.$array[1]}.':'.${'var_'.$array[2]}.':'.${'var_'.$array[3]};
}
/*Bauzeiten Ende*/
?>
 
Hab mal ne neuere Version dort werden aber komischer Weiße nur Stunden Tage und Monate richtig angezeigt 60 Sekunden und Minuten nicht! Verstehs absolut nicht!

PHP:
<?
/*Bauzeiten Anfang*/ 
function Transform_Bauzeit ($time) 
{
$s=1; 
$m=60*$s;
$h=60*$m;
$d=24*$h;
$mo=31*$d;
 
$array = array("mo","d","h","m","s"); 
 
for($i=0;$i<count($array);$i++) { 
if($time>$$array[$i] || $time==1) 
{ 

if($array[$i]=="s") {
$var = $time;
} 
else {
$var=$time/$$array[$i];
$var=round($var,0);
$time=$time - ( $var * $$array[$i]);
}

//if($var==$$array[($i-1)]) {
//${'var_'.$array[($i-1)]} += 1;
//$var='0';
//}

${'var_'.$array[$i]}=$var; 

}
else {
${'var_'.$array[$i]}='00'; 
}
}

for($i=0;$i<count($array);$i++) {
if(strlen(${'var_'.$array[$i]}) == '1') {  
${'var_'.$array[$i]} = '0'.${'var_'.$array[$i]}; 
}
if($i==0) {
$out .= ${'var_'.$array[$i]};
} 
else {
$out .= ':'.${'var_'.$array[$i]};
}
}
return $out; 

}
/*Bauzeiten Ende*/ 
?>
 
Etwas Arithmetik…

PHP:
function format_time_diff($time)
{
	$d = floor($time / 86400); $time -= $d * 86400;
	$h = floor($time /  3600); $time -= $h *  3600;
	$m = floor($time /    60); $time -= $m *    60;
	$s = $time;

	return sprintf("%02d:%02d:%02d:%02d", $d, $h, $m, $s);
}
 
Zurück