Der MySQL-Timestamp gibt das Datum im Format "20041027123315" aus. Es gibt verschiedene Möglichkeiten (explode, ...), um dieses Datum etwas leserlicher zu gestalten. Am einfachsten erscheint mir der Einsatz von Regular Expressions:
<?
$date="20041027123315";
print preg_replace("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/",
"\$3.\$2.\$1 \$4:\$5",$date)."\n";
?>
Dies ergibt folgenden Output:
27.10.2004 12:33
print preg_replace("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/","\$3.\$2.\$1 \$4:\$5",$date)."\n";
Mit print (oder echo) wird PHP angewiesen, das Ergebnis auf den Bildschirm auszugeben
print preg_replace("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/","\$3.\$2.\$1 \$4:\$5",$date)."\n";
Mit "\n" wird in der Ausgabe des Quelltextes ein Zeilenumbruch gesetzt.
Dies dient der Lesbarkeit des Quelltextes, kann aber weggelassen werden.
print preg_replace("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/","\$3.\$2.\$1 \$4:\$5",$date)."\n";
Mit preg_replace wird ein regulärer Ausdruck gesucht ersetzt
print preg_replace("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/","\$3.\$2.\$1 \$4:\$5", $date)."\n";
Sie besteht aus 3 Teilen.
| Suchmuster |
| Ersatz |
| Zeichenkette |
Der Timestamp 20041027123315 beinhaltet:
20041027123315 das Jahr à 4 Zahlen 20041027123315 den Monat à 2 Zahlen 20041027123315 den Tag à 2 Zahlen 20041027123315 die Stunden à 2 Zahlen 20041027123315 die Minuten à 2 Zahlen 20041027123315 die Sekunden à 2 Zahlen
Das Suchmuster (\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2}) liefert uns die gewünschten Zeichenabschnitte
(\d{4}) das Jahr ist das erste Ergebnis (\d{2}) der Monat ist das zweite Ergebnis (\d{2}) die Tage sind das dritte Ergebnis (\d{2}) die Stunden sind das vierte Ergebnis (\d{2}) die Minuten sind das fünfte Ergebnis (\d{2}) die Sekunden sind das sechste Ergebnis
Wir haben somit 20041027123315 in sechs Teile zerlegt. (2004 10 27 12 33 15 )
Diese sollen nun neu zusammengestellt werden.
Gewünscht ist der Tag, der Monat und das Jahr, dann die Uhrzeit. Das entspricht dem Ergebnis 3 (Tag),
dann Ergebnis 2 (Monat),
und nun dem Ergebnis 1 (Jahr).
Dazwischen soll, wie es sich für ein Datum gehört, ein Punkt stehen.
Es folgt ein Leerzeichen, um das Datum von der Zeit optisch zu trennen, und dann das Ergebnis 4 und 5, in der die Uhrzeit zu finden ist.
Aus 20041027123315 wird somit 27.10.2004 12:33
... und die Sekunden?
Diese haben wir schlicht ignoriert. Folgendes Script gibt auch die Sekunden
aus.
(Es wurde absichtlich eine etwas andere Schreibweise gewählt.)
<?
$date="20041027123315";
print preg_replace("!(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})!",
"$3.$2.$1 $4:$5 und $6 Sekunden.",$date);
?>
PHP-Code: Copyright (c) by Mario Wagner, Degersheim 2004
PHP-Erläuterung: Copyright (c) by Mario Wagner, Degersheim 2004, Martin Scheiben, Herisau, 2004
Diese Seite sollten Sie im Querformat drucken !