Sekunden in Zeitformat bringen 00:00:00

  • Hallo,
    mit welcher Rechnung kann ich 9000 Sekunden in das Zeitformat
    Stunde:Minute:Sekunde bringen sodass er es automatisch hochsetzt
    wenn es mehr als 60 Sekunden sind.
    :roll:

    Danke

  • Also, eine Minute hat 60 Sekunden und eine Stunde hat 60 Minuten.
    Wenn du jetzt mal nach multiplizieren und dividieren googlest und dir das anschaust ist das ganze für nen Fünftklässler zu lösen.
    Vorrausgesetzt er versucht überhaupt selber eine Lösung zu finden.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Ich habe es schon so versucht, doch es will nicht klappen :(
    Und wie ich das mit Modulo lösen kann weiß ich nicht.

    Gibt 0:0:800 aus

  • Dann versuchs mal so:

    PHP
    <?php
      $sekundenangabe = 800; 
    
      $stunden     = floor($sekundenangabe / 3600);  
      $rest      = $sekundenangabe % 3600;  
      $minuten     = floor($rest / 60);  
      $sekunden = $rest % 60;
    
      echo $stunden.":".$minuten.":".$sekunden;  
    ?>

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Auch wenn dir das wieder nicht gefallen wird:

    Werktage addieren, Wochentag ermitteln, Sekunden umwandeln. Alles Dinge, die man mit etwas Logik und Grundlagenkenntnissen alleine hinbekommt. Aber nein, du lässt dir alles vorkauen. :( Kopfschüttel :(

  • Dann versuchs mal so:

    PHP
    <?php
      $sekundenangabe = 800; 
    
      $stunden     = floor($sekundenangabe / 3600);  
      $rest      = $sekundenangabe % 3600;  
      $minuten     = floor($rest / 60);  
      $sekunden = $rest % 60;
    
      echo $stunden.":".$minuten.":".$sekunden;  
    ?>


    Danke das klappt zwar aber irgendwie macht mir die Denkweise von
    Mod zu schaffen, ich gucke es mir morgen wenn ich ausgeschlafener
    bin nochmal an.

  • Modulo ermittelt dir den Restwert zu einer Ganzzahl als Ergebnis beim dividieren ganzer Zahlen.

    Bsp:
    a % b = c

    c ist die Differenz zwischen a und dem höchsten Vielfachen von b das kleiner als a ist.

    11 % 3 = 2

    Das größte Vielfache von 3 das kleiner 11 ist ist 9. Und 11 - 9 = 2.
    Etwas klarer?

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Zitat

    Etwas klare?


    Hallo,
    danke für die Erklärung ich hatte es mir zwar in Wikipedia angesehn,
    aber da hatte ich es schneller wieder vergessen, als ich es verstehen konnte.

    Ist in dem Sinne ja nichts schweres nur damit Rechnungen auszuführen,
    hätte ich bisher noch nicht können, da mir die Denkweise fehlte.

    Nun habe ich durchblickt, das du damit ja einfach checkst ob noch ein
    Rest für Minuten, Sekunden über bleibt...

    Floor() hatte ich in der Doku gesehn und die Nutzung ist auch plausibel,
    was will man mit Kommerbeträgen oder aufgerundeten Zahlen, wenn man
    wissen will wie viele volle Stunden, Minuten und Sekunden man hat.

    Ich hatte wohl eben einfach nicht die Ruhe in dem Stress es so
    schnell zu verstehen danke für deine Antwort!

    In meinen ersten Versuch bin ich mit Modulo bei Sekunden angefangen,
    was natürlich Schwachsinn war.

  • Kein Thema, solange du auch versuchst es zu verstehen und nicht nur blind kopierst gerne. :)
    Hier zum Abschluss nochmal eine etwas brauchbarere Lösung, die da oben war nur auf den Kern der Sache eben runtergeschrieben.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    Einmal editiert, zuletzt von SinnlosS (8. April 2009 um 21:47)

  • Falls MySQL zur Verfügung stehen sollte:

    SQL
    SELECT FROM_UNIXTIMESTAMP('9000','%H:%i:00') AS zeitformat

    ;)

    Hast du das ausprobiert? Eine ähnliche Funktion wäre in php ja date(), da fangen die Stunden aber bei 01 an. Ich weiß jetzt nicht wie es bei sql ist.

    PHP
    $sekunden = 45; 
    echo date("H:i:s",$sekunden);  // Ausgabe: 01:00:45

    Beides geht allerdings auch nur bis 23/24 Stunden maximum, keine Ahnung was für Wert da durchgejagt werden sollen.

    Edit: Ok, Alternative für Werte bis maximal 23:59:59

    PHP
    $sekunden  = 45; 
    $sekunden += 82800;  // = 23 Stunden
    echo date("H:i:s",$sekunden);  // Ausgabe: 00:00:45

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    4 Mal editiert, zuletzt von SinnlosS (8. April 2009 um 21:39)

  • Hallo,
    ich habe es zwar ohne Funktion und ohne Arry aber das mit der
    0 wenns kleiner 10 ist habe ich aus optischen Gründen ebenfalls
    gemacht.

    Wenn ich die Umrechnung nochmal brauche lager ich es aus und
    wandel es auch in eine Funktion um, da es doch einige Vorteile
    mit sich bringt.

    Implode() kannte ich auch noch nicht, wieder was gelernt.