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

Zeitzähler

Status
Für weitere Antworten geschlossen.

Loon3y

Neues Mitglied
Moinsen,

komm irgendwie grad nicht weiter *g*

habe folgendes

Code:
        <p> <?php
$start = mktime(20,10,00,05,01,2008);
$heute = time();
$diff = $heute - $start;
echo strftime("<span>%m Months %d Days, %H Hours, %M Minutes, %S Seconds</span>",$diff);  
?> </p>
dieser "Zähler" gibt mir aus, wieviele Monate, Tage, Stunden, Minuten und Sekunden seit dem 01.05.2008 20:10Uhr vergangen sind. Allerdings ist die Ausgabe noch irgendwie nicht so wie "gewünscht". Er zeigt mir, wenn eine Zahl unter 10 ist, diese Zahl zweistellig da, sprich 01, 02, 03, 04, 05, 06, 07, 08, 09. Wie schaffe ich es, dass er mir die Zahlen ohne die "0" davor darstellt?!

klappt die anzeige in Jahre noch nicht..irgendwann ist man ja über 12 monate..da zeigt er mir 70 Jahre, wie kommts? Oo

Hoffe mein Gedankengang und die Ausführung ist nicht ganz so falsch ^^

Steh grad irgendwie aufm Schlauch...

Gruß und Dank

Loon3y
 
Schau dir mal die Funktion strtr an.
Damit sollte das relativ einfach zu lösen sein.

Der 2. Parameter wäre in deinem Fall ein Array, dass du mittels date() erzeugst.

PHP:
echo strtr("<span>1 Monate 2 Tage, 3 Hours, 4 Minutes, 5 Seconds</span>",$time_values);
 
Zuletzt bearbeitet:
Das kann man sogar noch weiter treiben:
PHP:
function duration ($sec, $format = '%d Tag%s, %d Stunde%s, %d Minute%s und %d Sekunde%s') {
    $d = array(
        $sec / 86400,
        '',
        $sec / 3600 % 24,
        '',
        $sec / 60 % 60,
        '',
        $sec % 60,
        ''
    );
    list($d[1], $d[3], $d[5], $d[7]) = array(
        floor($d[0]) != 1 ? 'e':'',
        floor($d[2]) != 1 ? 'n':'',
        floor($d[4]) != 1 ? 'n':'',
        floor($d[6]) != 1 ? 'n':''
    );

    return vsprintf($format, $d);
}
 
echo duration(99114);
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben