Wer selbst Foren programmiert oder verschiedene Dinge in seiner Datenbank loggt, wird schnell bemerken, das dies doch mal schnell viel Platz verbraucht. Ich hatte in meinem Forum das Problem, das ich Datum/Zeit sowie Timestamp (zur Sortierung) gespeichert habe, um dem Besucher Einträge mit Zeitangabe sortiert anzuzeigen.
In den letzten Tagen habe ich einen kleinen Praktischen Script entwickelt, wo man aus dem Timestamp ein vernünftiges Datum wandelt. Zuerst mal der Script:
function stamp2date($a, $b)
{
setlocale(LC_TIME, "de_DE"); // Hier wird der Standard für Deutschland gesetzt
$e="";
for ($c=0; $c<strlen($a); $c++)
{
$d=substr($a, $c, 1); // Hier werden hintereinander einzelne Buchstaben aus dem Übermitteltem String ausgelesen
// Die folgenden Zeilen lesen den Wochentag aus und übersetzen diesen auf deutsch. Achtung: Wochentag ist ein kleines L im String!!!
if ($d=="l")
{
if (strftime("%A", $b)=="Sunday") $e.="Sonntag";
if (strftime("%A", $b)=="Monday") $e.="Sonntag";
if (strftime("%A", $b)=="Tuesday") $e.="Sonntag";
if (strftime("%A", $b)=="Wednesday") $e.="Mittwoch";
if (strftime("%A", $b)=="Thursday") $e.="Donnerstag";
if (strftime("%A", $b)=="Friday") $e.="Freitag";
if (strftime("%A", $b)=="Saturday") $e.="Samstag";
}
// Auslesen des Kalendertags (01-31)
elseif ($d=="d") { $e.=strftime("%d", $b); }
// Auslesen des Monats (01-12)
elseif ($d=="m") { $e.=strftime("%m", $b); }
// Auslesen des Jahres (vierstellig)
elseif ($d=="Y") { $e.=strftime("%Y", $b); }
// Auslesen der Stunde (00-23)
elseif ($d=="H") { $e.=strftime("%H", $b); }
// Auslesen der Minute, bei Zahen unter 10 wird eine 0 vorgesetzt.
elseif ($d=="i")
{
$f=strftime("%M", $b);
if ($f<10) $e."0".$f;
else $e.=$f;
}
// Auslesen der Sekunde, bei Zahen unter 10 wird eine 0 vorgesetzt.
elseif ($d=="s")
{
$f=strftime("%S", $b);
if ($f<10) $e."0".$f;
else $e.=$f;
}
// Normale Übergabe bei allen anderen Zeichen im String
else { $e.=$d; }
}
// Rückgabe der Daten
return $e;
}
Soviel zum Script. Die Funktion lässt sich nun folgendermaßen abrufen:
$outputdaten=stamp2date("l, d. m. Y - H:i:s", 1234567890);
Dieser String liefert nun folgendes Ergebnis:
Samstag, 14. 02. 2009 - 00:31:30
...in der Variable $outputdaten. Statt 1234567890 kann natürlich eine Variable verwendet werden, wo der Timestamp aus einer Tabelle ausgelesen wurde.
Wie gesagt ich habe damit schon viel Platz in meiner Forendatenbank eingespart, und diese wird euch bestimmt auch in anderen Bereichen nützlich sein.
Solltet ihr Fragen zum Script haben, schickt mir einfach eine PN.
kenny197902
===================
Wichtiger Hinweis: Die Verbreitung dieses Scriptes auf anderen Seiten erlaube ich nur, wenn ihr mich informiert auf welchen Seiten ihr dieses Script schreiben wollt.
===================