Format der Datumsanzeige in Drupal genau definieren

Unter „Verwalten“ > „Einstellungen“ > „Datum und Uhrzeit“ können einige Einstellung zur Ausgabe des Datumsformates in Drupal vorgenommen werden. Einerseits stört mich die Verwendung von Schrägstrichen bei den entsprechenden deutschen Datumsformaten (12/04/2007) und andererseits möchte ich gerne im Blogbereich eine andere Darstellung als auf der restlichen Seite erreichen.

(Nachtrag: :wirr: Ich hatte wohl Tomaten auf den Augen als ich das gewünschte Datumsformat nicht finden konnte, natürlich gibt es 12.04.2007 unter den kurzen Datumsformaten.)

Dazu habe ich auf Drupal.org folgenden Tipp gefunden: Formatting the way the date/time is displayed. Leider gilt dieser wohl nur für Drupal 4.6 und 4.7 wie man gleich sehen wird.

Nach dieser Anleitung integriert man folgendes PHP-Snippet gleich zu Beginn entweder in die node.tpl.php oder in die zum Inhaltstyp passende node.tpl.php.

created, ‚custom‘, ‚D j M Y‘);
?>

Dies wäre in meinem Fall die node-blog.tpl.php.

Um die Datums- und Uhrzeitanzeige genau zu definieren ändert man die Parameter „D j M Y“ so, dass die gewünschte Form erscheint. Eine genaue Beschreibung der Parameter findet sich in der deutschen PHP Dokumentation.

Damit unsere modifizierte Anzeige auch ausgegeben wird, soll die Variable „$date“ durch „$formatted_date“ ersetzt werden. Diese ist leider unter Drpal 5.x zumindest im Garland Theme nicht zu finden, da dort der Teil mit der Ausgabe des Datums folgendemaßen lautet:

theme('username', $node), '!date' => format_date($node->created))); ?>

Ich habe dann

format_date($node->created) durch

format_date($node->created, 'custom', 'D j M Y') ersetzt.

Damit erhalte ich zwar keine allgemeingültige Variable, aber an der Stelle kann ich das Datum trotzdem nach meinen Wünschen formatieren. Vielleicht finde ich auch noch eine generelle Lösung, um die Schrägstriche aus der Datumsdarstellung zu entfernen.

2 Kommentare zu „Format der Datumsanzeige in Drupal genau definieren“

  1. $date ist zwar im Code des Garland Theme nicht enthalten, in Node.tpl.php aber als Variable vorhanden (wobei dies nicht einmal notwendig ist, da mit der beschriebenen Lösung bereits eine solche Variable $formatted_date geschaffen wird). Um eine allgemeingültige (d.h. im vorliegenden Fall für Node.tpl.php gültige) Variable zu erhalten, integriert man folgendes PHP-Snippet gleich zu Beginn entweder in die node.tpl.php oder in die zum Inhaltstyp passende node.tpl.php:

    < ?php $date = format_date($node->created, 'custom', gewünschtes Format);
    ?>

    und ersetzt:

    < ?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created))); ?>

    durch:

    < ?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => $date)); ?>

    Diese Vorgehensweise bietet sich vor allem an, wenn das gleiche Datumsformat mehrmals auf einer Seite ausgegeben werden soll, damit die Datumsformatierung nur einmal durchgeführt werden muss.

    So gesehen könnte format_date($node-created) in Garland durch $date ersetzt werden und das Ergebnis wäre das gleiche.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.