Michael Schröpl: Datumsformat ändern?

Beitrag lesen

Get the Date for Entry

$date = $date\_command +"%A, %B %d, %Y "; chop($date);
$shortdate = $date\_command +"%D %T %Z"; > Habt Ihr vielleicht eine Idee, wie ich es in Deutsch umbauen kann und kürzen kann auf Dienstag, 16. Nov. 1999?

Dein Problem besteht aus zwei Teilen.

Teil 1: Format.

$date = $date\_command +"%A, %d. %b %Y";

%A ist der Wochentag, %d der Tag im Monat, %b der abgekürzte Monatsname (%B wäre der ausgeschriebene) und %Y die vierstellige Jahreszahl. Du mußt also bloß die Reihenfolge der Felder in der Formatmaske vertauschen und zwei Kommata entfernen.
(Siehe UNIX-manpage zu "date".)

Teil 2: Sprache.

Das von diesem Skript verwendete UNIX-Systemkommando "date" formatiert seine Ausgabe in Abhängigkeit von der eingestellten Systemsprache.
Diese wird in der Environment-Variablen $LANG definiert, und zwar normalerweise vom Systemadministrator einheitlich für alle Benutzer, die auf seinem System arbeiten. Das kannst Du nicht ändern, aber überlisten.
Du müßtest dafür die Stelle finden, wo die Variable "$date_command" definiert wird (wahrscheinlich wird ihr einfach die Zeichenkette "date" zugewiesen) und dies ersetzen durch
    $date_command = "LANG=De_DE date".
Das führt dazu, daß dieses eine Systemkommando in einer Umgebung ausgeführt wird, welche für die LANG-Variable den angegebenen Wert bekommt (danach ist die Umdefinition der Systemsprache wieder verschwunden).
Es kann sein, daß "De_DE" ("deutsch in der Ausprägung für Deutschland") nicht der exakt richtige Wert ist, auf den Deine UNIX-Kiste reagiert (ich habe auch schon "de_DE" gesehen) - falls dies der Fall sein sollte, müßtest Du ggf. Deinen Systemadministrator (Provider, ...) fragen, welche LANG-Werte bei ihm welche Wirkung haben.