• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zeit formatieren

Status
Für weitere Antworten geschlossen.

smdata2

Neues Mitglied
Hallo Leute,
ich habe mal eine kleine Frage. Ich bekomme als Antwort von meinem Voice-Server die Uptime in Sekunden, z.B. "1348033".

Jetzt möchte ich diese Dauer in "xx Tage, xx Stunden, xx Minuten, xx Sekunden" umwandeln. Wie lässt sich das am kürzesten anstellen? :-D

Mfg smdata2
 
so problem ist gelöst:

PHP:
function formatTime($anz_sekunden){
    $uptime = "";
    
    $days = floor($anz_sekunden/86400);
    $hours = floor(($anz_sekunden-(floor($anz_sekunden/86400)*86400))/3600);
    $minutes = floor(($anz_sekunden-(floor($anz_sekunden/3600)*3600))/60);
    $seconds = floor($anz_sekunden-(floor($anz_sekunden/60))*60); 
          
    if ($days < 10) $day = '0'.$days;
    if ($hours < 10) $hours = '0'.$hours;
    if ($minutes < 10) $minutes = '0'.$minutes;
    if ($seconds < 10) $seconds = '0'.$seconds;
    
    if($days > 0) $uptime = $days." Tagen, ".$hours." Stunden, ".$minutes." Minuten, ".$seconds." Sekunden";
    else $uptime = $uptime = $hours." Stunden, ".$minutes." Minuten, ".$seconds." Sekunden";
          
    return $uptime; 
}
 
Mit runden? Das kann aber ganz schön in die Hose gehen....

PHP:
function postFixes($element) {
  if($element != 1) return "n";
  return "";
}
function formatSeconds($seconds) {
  $times = array($seconds, 0, 0, 0);
  while($times[0] > 59) {
    $times[1]++;
    $times[0] -= 60;
  }
  while($times[1] > 59) {
    $times[2]++;
    $times[1] -= 60;
  }
  while($times[2] > 23) {
    $times[3]++;
    $times[2] -= 24;
  }
  $postfixes = array_map("postFixes", $times);
  $postfixes[3] = ($times[3] != 0) ? "en" : "";
  $times = array_map("str_pad",$times ,array(2,2,2,2), array(0,0,0,0), array(STR_PAD_LEFT,STR_PAD_LEFT,STR_PAD_LEFT,STR_PAD_LEFT));
  return 
    $times[3]." Tag".$postfixes[3].", ".
    $times[2]." Stunde".$postfixes[2].", ".
    $times[1]." Minute".$postfixes[1].", ".
    $times[0]." Sekunde".$postfixes[0];
}
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben