Zeitangabe richtig Formatieren, ...

  • Hallo zusammen,

    ich habe folgenden Code gefunden und er funktioniert auch super, nur möchte ich das Ergebnis anders Formatiert ausgegebnen wird. Bekomme das aber irgend wie nicht richtig hin. Ich verstehe den zusammenhang mit dem % Zeichen nicht ??

    Wer kann mir da helfen?

    Ergebnis: 1 Tag, 23 Stunden, 32 Minuten und 7 Sekunden

    Mein Wunsch: 1d 23:32:07h

    Vielen Dank, Oli

  • function intervall($sek){
    $i = sprintf('%d d, %d:
    %d:%d',
    $sek / 86400,
    $sek / 3600 % 24,
    $sek / 60 % 60,
    $sek % 60,
    );
    return $i;
    }

    probiers mal so...

    mfg
    Andi

  • Danke DER_Brain,

    das klappt schon mal, was jetzt noch komisch aussieht ist zB. 4d, 0: 5:45 wenn Stunde, Minute, Sekunde Einstellig ist. Hast Du hier für auch noch ein Lösungsvorschlag?

    Gruß Oli ;)

  • mach mas ganz einfach...:

    dies wäre eine möglichkeit.. danach sind es eben keine zeitwerte mehr sondern strings, wobei das
    a. in diesem fall egal ist (denke ich), und
    b. PHP es mit Variablentypen sowieso nicht so genau nimmt wie andere Programmiersprachen..


    lg
    Andi

    PS: Das BSP is sehr simpel gehalten, da ich keine Möglichkeit zum Testen habe.. ;)

  • Klasse DER_Brain,

    den Code verstehe ich schon viel besser, 2 kleine Fehler verbessert und er läuft. :)

    Nur das Ergebnis ist das alte, nach rum suchen über die Funktion sprintf(),
    hab ich raus gefunden das ein %s einen String aus gibt. Vermutlich hat er beim %d was ein Integer Wert darstellt die vorrangestellte Null ignoriert oder wieder gelöscht.
    Jetzt funktioniert es, klasse.

    Also nochmal vielen Dank für deine Hilfe.

    Mfg Oli ;)