Konvertieren Sie Sekunden in Stunde:Minute:Sekunde

Lesezeit: 4 Minuten

Konvertieren Sie Sekunden in StundeMinuteSekunde
EzzDev

Ich muss Sekunden in “Stunde:Minute:Sekunde” umwandeln.

Zum Beispiel: „685“ umgewandelt in „00:11:25“

Wie kann ich das erreichen?

Du kannst den … benutzen gmdate() Funktion:

echo gmdate("H:i:s", 685);

  • Stellen Sie jedoch besser sicher, dass die Anzahl der Sekunden unter 86.400 liegt.

    – Salat

    3. Juli 2010 um 19:15 Uhr

  • H steht für die Anzahl der Stunden an einem einzigen Tag. Wenn Sie also 90000 Sekunden haben und H verwenden, ist das Ergebnis 01 (erste Stunde eines nächsten Tages). NOT 25 – ein Tag hat nur 24 Stunden.

    – Marcin Wolny

    20. Juni 2013 um 10:35 Uhr

  • Ich bin mir nicht sicher, ob dies die richtige Antwort ist, dies wird zu einem führen datetime … also wenn wir ein Ergebnis > 24 Stunden erwarten, wird es nicht funktionieren. Auch wenn wir ein negatives Ergebnis benötigen (zum Beispiel mit Offset arbeiten), wird es nicht funktionieren. -1 für die vielen Details

    – Wunderland

    1. Juli 2014 um 11:38 Uhr

  • Dies sollte aufgrund des offensichtlichen Fehlers für Zeiten von mehr als 24 Stunden nicht die akzeptierte Antwort sein.

    – Scott Flack

    3. September 2014 um 5:23 Uhr

  • Für die Verwendung mit Tagen, an denen Zahlen möglicherweise größer als 85399 sind, können Sie verwenden echo gmdate("z H:i:s", 685); z ist die Anzahl der Tage im Jahr, beginnend mit 0. Sie können natürlich das PHP-Datumshandbuch lesen, um es an Ihre speziellen Bedürfnisse anzupassen.

    – Nachtwolf

    11. August 2016 um 6:51 Uhr

Eine Stunde hat 3600 Sekunden, eine Minute 60 Sekunden, also warum nicht:

<?php

$init = 685;
$hours = floor($init / 3600);
$minutes = floor(($init / 60) % 60);
$seconds = $init % 60;

echo "$hours:$minutes:$seconds";

?>

was produziert:

$ php file.php
0:11:25

(Ich habe nicht so viel getestet, daher kann es zu Fehlern mit dem Boden oder so kommen)

  • Aber er will zwei Nullen… “00:11:25” nicht “0:11:25”

    – Animation

    3. Juli 2010 um 18:23 Uhr

  • printf("%02d:%02d:%02d", $hours, $minutes, $seconds);

    – Bernstein

    3. Juli 2010 um 18:26 Uhr

  • Gute Antwort, aber stellen Sie sicher, dass Sie $hours*3600 und $minutes*60 zwischen jeder Operation von $init subtrahieren, sonst werden Sie am Ende Minuten und Sekunden doppelt zählen.

    – Mike Stowe

    25. Juli 2015 um 5:07 Uhr

  • Um den Kommentar von @Amber zu ergänzen, verwenden Sie sprintf um den Wert zurückzugeben, anstatt ihn zu drucken.

    – Allen Butler

    19. September 2016 um 18:33 Uhr

  • Dieser funktioniert bei mir am besten. Eine Kleinigkeit ist hinzuzufügen. Wenn Sie weniger als 10 Stunden haben, wird 3:10:59 angezeigt. Lass es so aussehen, als ob das OP 03:10:59 will. Funktioniert so $hours = floor( 2300 / 3600); return ($hours < 10 ? '0' . $hours : $hours) . gmdate(":i:s", $this->getSeconds() % 3600);

    – NME New Media Entertainment

    9. April 2021 um 21:56 Uhr

Bitte schön

function format_time($t,$f=":") // t = seconds, f = separator 
{
  return sprintf("%02d%s%02d%s%02d", floor($t/3600), $f, ($t/60)%60, $f, $t%60);
}

echo format_time(685); // 00:11:25

  • Funktioniert nicht bei negativen Werten. Wenn Sie ein negatives Sekundenintervall haben, verwenden Sie Folgendes: return ($t< 0 ? '-' : '') . sprintf("%02d%s%02d%s%02d", floor(abs($t)/3600), $f, (abs($t)/60)%60, $f, abs($t)%60); }

    – Ajax

    15. November 2013 um 10:25 Uhr

1646884447 557 Konvertieren Sie Sekunden in StundeMinuteSekunde
Glavic

Funktion verwenden gmdate() nur wenn Sekunden kleiner als sind 86400 (1 Tag) :

$seconds = 8525;
echo gmdate('H:i:s', $seconds);
# 02:22:05

Sehen: gmdate()

Führen Sie die Demo aus


Konvertieren Sie Sekunden in das Format von ‘Fuß’ keine Begrenzung* :

$seconds = 8525;
$H = floor($seconds / 3600);
$i = ($seconds / 60) % 60;
$s = $seconds % 60;
echo sprintf("%02d:%02d:%02d", $H, $i, $s);
# 02:22:05

Sehen: Boden(), sprintf(), Rechenzeichen

Führen Sie die Demo aus


Beispielverwendung von DateTime Verlängerung:

$seconds = 8525;
$zero    = new DateTime("@0");
$offset  = new DateTime("@$seconds");
$diff    = $zero->diff($offset);
echo sprintf("%02d:%02d:%02d", $diff->days * 24 + $diff->h, $diff->i, $diff->s);
# 02:22:05

Sehen: DateTime::__construct(), DateTime::modify(), Klon,
sprintf()

Führen Sie die Demo aus


MySQL-Beispiel Der Bereich des Ergebnisses ist auf den Datentyp TIME beschränkt, der von ist -838:59:59 zu 838:59:59 :

SELECT SEC_TO_TIME(8525);
# 02:22:05

Sehen: SEC_TO_TIME

Führen Sie die Demo aus


PostgreSQL-Beispiel:

SELECT TO_CHAR('8525 second'::interval, 'HH24:MI:SS');
# 02:22:05

Führen Sie die Demo aus

Konvertieren Sie Sekunden in StundeMinuteSekunde
Radim

Andere Lösungen verwenden gmdate, scheitern aber in Grenzfällen, in denen Sie mehr als 86400 Sekunden haben. Um dies zu umgehen, können wir die Anzahl der Stunden einfach selbst berechnen und dann lassen gmdate Berechne die verbleibenden Sekunden in Minuten/Sekunden.

echo floor($seconds / 3600) . gmdate(":i:s", $seconds % 3600);

Eingang: 6030
Ausgabe: 1:40:30

Eingang: 2000006030
Ausgabe: 555557:13:50

1646884448 516 Konvertieren Sie Sekunden in StundeMinuteSekunde
Stano

// TEST
// 1 Day 6 Hours 50 Minutes 31 Seconds ~ 111031 seconds

$time = 111031; // time duration in seconds

$days = floor($time / (60 * 60 * 24));
$time -= $days * (60 * 60 * 24);

$hours = floor($time / (60 * 60));
$time -= $hours * (60 * 60);

$minutes = floor($time / 60);
$time -= $minutes * 60;

$seconds = floor($time);
$time -= $seconds;

echo "{$days}d {$hours}h {$minutes}m {$seconds}s"; // 1d 6h 50m 31s

Wenn Ihnen akzeptierte oder beliebte Antworten nicht gefallen, versuchen Sie es mit dieser

function secondsToTime($seconds_time)
{
    if ($seconds_time < 24 * 60 * 60) {
        return gmdate('H:i:s', $seconds_time);
    } else {
        $hours = floor($seconds_time / 3600);
        $minutes = floor(($seconds_time - $hours * 3600) / 60);
        $seconds = floor($seconds_time - ($hours * 3600) - ($minutes * 60));
        return "$hours:$minutes:$seconds";
    }
}

secondsToTime(108620); // 30:10:20

986020cookie-checkKonvertieren Sie Sekunden in Stunde:Minute:Sekunde

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy