CakePHP – deutsche Monatsnamen bei Datetime

Bei CakePHP steckt die Tücke manchmal im Detail, so zum Beispiel gestern als ich „eben mal schnell“ ein Formular erstellen wollte, das ein Datetime-Feld enthält. Natürlich kam CakePHP erst einmal mit dem verkehrten Datumsformat daher, und natürlich waren sämtliche Monatsnamen in Englisch. Wenn man weiß wie es geht, ist die Lösung recht einfach, eine Suche nach dieser bei Google beschert einem allerdings allerhand Schwachsinniges :) Deshalb hier noch einmal die Lösung!

Das Datumsformat an sich ändert man recht einfach beim Aufruf:

echo $form->input('datumsfeld', array(
                          'dateFormat' => 'DMY',
                          'timeFormat' => '24',
                          'label' => 'Datum / Uhrzeit'
                        ));

Entsprechend: Format ist (natürlich) DD.MM.YYYY und wir wollen die Uhr im 24-Stunden-Format angezeigt bekommen. Das ändern der Monatsnamen kann man über die I18N erledigen, dazu legt man (falls noch nicht vorhanden) die Datei /app/locale/deu/LC_MESSAGES/default.po an. Mittels eines Texteditors gibt man der Datei den folgenden Inhalt (oder hängt ihn an):

msgid "January"
msgstr "Januar"
 
msgid "February"
msgstr "Februar"
 
msgid "March"
msgstr "März"
 
msgid "April"
msgstr "April"
 
msgid "May"
msgstr "Mai"
 
msgid "June"
msgstr "Juni"
 
msgid "July"
msgstr "Juli"
 
msgid "August"
msgstr "August"
 
msgid "September"
msgstr "September"
 
msgid "October"
msgstr "Oktober"
 
msgid "November"
msgstr "November"
 
msgid "December"
msgstr "Dezember"

Die Datei muss dann natürlich als UTF-8 gespeichert werden! EIgentlich ganz einfach, oder? ;)

Eine Antwort auf „CakePHP – deutsche Monatsnamen bei Datetime“

  1. Hallo.

    Interessanter Artikel.
    Wie würde denn die Ausgabe des dts. Monatsnamen laufen?
    So: __($time->format(‚F‘, $entry[‚Model‘][‚created‘]));

Schreibe einen Kommentar

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