Hübsche Daten mit PHP
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 Daniel
Interessant.
Allerdings finde ich auch relative Angaben, wie “vor 30 Minuten” oder “vor 9 Tagen” sehr interessant.
Hatte mir dafür mal folgendes auf meine TODO gepackt:
http://solambda.blogspot.com/2008/10/relative-dates-in-php.html
(“_” in der Domain entfernen, scheint auf Deiner Spamliste zu sein!?!!)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.