Ein Beispiel:
Standard Format: Kommentar wurde verfasst am 17.08.2012 - 20:30 Uhr
Facebook Stil: Kommentar wurde verfast "vor 2 Stunden"
Ich stelle euch hier meine Funktion zur Verfügung und erkläre euch im Anschluss darauf wie alles funktioniert.
1. Die Funktion: date.inc.php
PHP-Code:
Code:
<?php
// Datum im Facebook Stil
function niceDate($timestamp)
{
$difference = time() - $timestamp;
$periods = array("Sekunde",
"Minute",
"Stunde",
"Tage",
"Woche",
"Monate",
"Jahre",
"Jahrzehnte"
);
$lengths = array("60","60","24","7","4.35","12","10");
if ($difference > 0)
{
// Vergangenheit
$ending = "vor";
} else {
// Zukunft
$difference = -$difference;
$ending = "noch";
}
for($j = 0; $difference >= $lengths[$j]; $j++)
{
$difference /= $lengths[$j];
$difference = round($difference);
}
if($difference != 1)
{
$periods[$j].= "n";
}
else
{
if($periods[$j] == "Woche" || $periods[$j] == "Stunde" || $periods[$j] == "Minute" || $periods[$j] == "Sekunde")
{
$periods[$j] = $periods[$j];
}
else
{
$periods[$j] = substr($periods[$j], 0, -1);
}
}
$date= "$ending $difference $periods[$j]";
return $date;
}
?>
1.
PHP-Code:
Code:
$difference = time() - $timestamp;
Das Datum könnt ihr folgendermaßen zu einem Unix-Timestamp konvertieren:
Code :
Code:
SELECT
id,
nachricht,
UNIX_TIMESTAMP(date) AS unix_date
FROM
nachrichten
PHP-Code:
Code:
if ($difference > 0)
{
// Vergangenheit
$ending = "vor";
} else {
// Zukunft
$difference = -$difference;
$ending = "noch";
}
3.
PHP-Code:
Code:
if($difference != 1)
{
$periods[$j].= "n";
}
else
{
if($periods[$j] == "Woche" || $periods[$j] == "Stunde" || $periods[$j] == "Minute" || $periods[$j] == "Sekunde")
{
$periods[$j] = $periods[$j];
}
else
{
$periods[$j] = substr($periods[$j], 0, -1);
}
}
4.
PHP-Code:
Code:
$date= "$ending $difference $periods[$j]";
Fertiges Beispiel:
PHP-Code:
Code:
<?php
// Include der Funktions-Datei
include("date.inc.php");
// Aktuelle Zeit als Timestamp
$timestamp = time();
$niceDate = niceDate($timestamp);
echo $niceDate;
?>
Ich hoffe mein erstes Tutorial hat euch gefallen. Ich würde mich sehr über Feedback / Verbesserungsvorschläge freuen.
Vielen Dank für's lesen!
Euer
Jaezer







