Monatsname im Template ausgeben lassen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • herrweiss
    Contao-Nutzer
    • 28.01.2010
    • 194

    #1

    Monatsname im Template ausgeben lassen

    Hallo,

    ich versuche gerade den vollen Monatsnamen eines Datum-Feldes in meinem Template ausgeben zu lassen. In den Format-Einstellungen habe ich "d.m.Y" eingetragen. Dieses Format wird dann auch wie erwartet im Template ausgeben, also 24.11.2011.

    Allerdings möchte ich folgende Schreibweise erzielen: 24. November 2011

    Ich habe nun versucht folgenden Code für die Ausgabe im Catalog-Template anzupassen:
    Code:
    <?php
    preg_match('/([0-9]{2}).([0-9]{1,2}).([0-9]{4})/',$this->date,$date);
    echo $date[1] . ". " . $GLOBALS['TL_LANG']['MONTHS'][$date[2]-1] . " " . $date[3];
    ?>
    In meinem Catalog-Template steht nun folgender Code:
    Code:
    <?php
    preg_match('/([0-9]{2}).([0-9]{1,2}).([0-9]{4})/',$this->date,$entry['data']['date_start']['value']);
    echo $entry[1] . ". " . $GLOBALS['TL_LANG']['MONTHS'][$entry[2]-1] . " " . $entry[3];
    ?>
    Leider wird so kein Datum ausgegeben...

    Für einen Tipp wäre ich sehr dankbar
  • schman
    Community-Moderator
    • 20.06.2009
    • 3739

    #2
    Warum stellst du in den Format-Einstellungen nicht auf d.F.Y um? Dann müsste es laut php.net den Monatsnamen anzeigen.
    eine weitere Möglichkeit wäre, meiner Meinung nach, den Timestamp zu nehmen und diesen via strftime zu formatieren. Der String müsste dann so aussehen:

    %d.%B.%G
    Kein Privat Support via PM.

    Kommentar

    • jscholtysik
      Contao-Fan
      • 19.06.2009
      • 369

      #3
      Hi,

      ich habe folgendes kleines PHP-Script auf meiner Seite eingebunden:

      Code:
      <?php
      
      $weekday = array(
              "Sonntag","Montag","Dienstag","Mittwoch",
              "Donnerstag","Freitag","Samstag"
      );
      $months = array(
              "Januar","Februar","M&auml;rz","April","Mai","Juni",
              "Juli","August","September","Oktober","November","Dezember"
      );
      list($wday,$mday,$month,$year) = split("( )",date("w j n Y"));
      $month -= 1;
      $this_day = "$weekday[$wday], $mday.$months[$month] $year";
      echo ("$this_day");
      ?>
      Es erscheint dann folgende Ausgabe:

      Donnerstag, 24.November 2011
      Joachim
      *** Kein Backup, kein Mitleid ***

      Kommentar

      • herrweiss
        Contao-Nutzer
        • 28.01.2010
        • 194

        #4
        Danke!

        Mit "d.F Y" funktioniert's

        Kommentar

        • xchs
          Administrator
          • 19.06.2009
          • 14682

          #5
          Wo hast Du denn dieses Datumsformat geändert? Möchte nur darauf hinweisen, dass im Backend ausschließlich numerische Datumsformate zulässig sind!
          Contao Community Administrator

          [Unterstützungsmöglichkeiten]
          sigpic

          Kommentar

          • herrweiss
            Contao-Nutzer
            • 28.01.2010
            • 194

            #6
            In der Definition meines Katalogfeldes habe ich das eingetragen, also:
            - zusätzliche Formatfunktionen aktiviert
            - Datum ausgewählt
            - und unter "Zeichenfolge für Formatierung oder Parameter" "d. F Y" eingetragen

            Kommentar

            • MacKP
              Contao-Yoda
              • 15.06.2009
              • 13315

              #7
              Hallo herrweiss,
              wenn ich mich richtig erinner, dann bekommst du jetzt Probleme bei der Eingabe... kann also sein, das du das besser im Template machst. Wie findet man hier im Forum zu genüge ;-)

              Viele Grüße
              Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
              [Arbeitet bei -> Paus Design & Medien]
              "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

              Kommentar

              • Tim G
                Contao-Urgestein
                • 13.02.2010
                • 2212

                #8
                (nur zur Ergänzung)
                Sowas geht auch sehr gut mit der internen parseDate() Funktion.
                Diese Erwartet 2 Parameter: 1. die neue Schreibweise, 2. der Unix-Zeitstempel

                Ich nutz sowas gern bei den News, oder Events. Sollte aber auch im Catalog funzen.

                PHP-Code:
                $dateWithTime = $this->parseDate('d. F Y | H:i', $this->time); 
                
                Da kommt sowas bei raus:

                24. November 2011 | 12:53


                Grüße,
                Tim
                ps. Wie MacKP schon sagt, im Template!
                http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

                Kommentar

                • herrweiss
                  Contao-Nutzer
                  • 28.01.2010
                  • 194

                  #9
                  @MacKP
                  Bei der Datum-Eingabe gibt es keine Probleme - hier wird nach wie vor das numerische Format "d.m.Y" angezeigt, auch wenn ich über den Date-Picker ein neues Datum auswähle.

                  Kommentar

                  • MacKP
                    Contao-Yoda
                    • 15.06.2009
                    • 13315

                    #10
                    Ah, sehr gut. Ich hatte damit vor längerer Zeit mal Probleme, das dann Zahlen nicht gespeichert werden konnten usw. Schön wenn es jetzt auch so klappt.

                    Viele Grüße
                    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                    [Arbeitet bei -> Paus Design & Medien]
                    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                    Kommentar

                    Lädt...