Hübsche Daten mit PHP

On in “Devstuff” by Tblue2 comments
Tags: , ,

Falls jemand einmal in der Lage sein sollte, Daten in PHP “hübsch” (“Heute”, “Gestern”, “am 03.09.2006 um 13:30:42”) darzustellen zu müssen/wollen, habe ich für denjenigen den passenden PHP-Code.

<?php
// Für alle Fälle:
date_default_timezone_set('Europe/Berlin');

// Für deutsche Wochentagsabkürzungen, bei Bedarf entspr. abändern:
setlocale(LC_TIME, 'de_DE');

function nicedate($timestamp = NULL)
{
    if ($timestamp === NULL) {
        $timestamp = time();
    }

    if ($timestamp >= mktime(0, 0, 0) &&
        $timestamp <= mktime(23, 59, 59))
    {
        // Bei Bedarf Datumsformat abändern, siehe auch die anderen
        // zwei strftime()-Aufrufe.
        return strftime('Heute um %H:%M:%S', $timestamp);
    } elseif (
        $timestamp >= mktime(0, 0, 0, date('n'), date('j')-1) &&
        $timestamp <= mktime(23, 59, 59, date('n'), date('j')-1))
    {
        return strftime('Gestern um %H:%M:%S', $timestamp);
    } else {
        return strftime('%a, %d.%m.%y, %H:%M:%S', $timestamp);
    }
}

// Aktuelles Datum:
echo nicedate()."\n";

// Gestern:
echo nicedate(mktime(13, 30, 00, date('n'), date('j')-1))."\n";

// Damals...
echo nicedate(mktime(10, 45, 23, 3, 1, 1999))."\n";

// Beispiel der Konvertierung eines Strings in einen Timestamp,
// siehe auch: http://www.php.net/manual/en/function.strtotime.php
echo nicedate(strtotime('Fri, 18 Jul 2008 14:12:06 GMT'));
?>

Die Ausgabe sieht dann so aus:

Heute um 14:22:32
Gestern um 13:30:00
Mo, 01.03.99, 10:45:23
Gestern um 16:12:06

Comment by Tblue

Ja, .blogspot.com war auf der Blacklist (Quelle: Central :-), hab die Domain runtergenommen.

Der verlinkte Artikel sieht interessant aus - schau ich mir bei Gelegenheit mal an.