Wie wird das Datumsformat für Symfony-Formulare global festgelegt?

8

Wie können Sie das benutzerdefinierte Datumsformat für Symfony2-Formulare richtig einstellen?

Das Standardformat ist wie Y-m-d , und wenn ich ein Datum wie m/d/Y oder d/m/Y eingabe, wird es als ungültig behandelt.

Gibt es eine Möglichkeit, das Format mit dem ausgewählten Gebietsschema in Beziehung zu setzen? Ich suche nach einer einfachen Lösung, ohne benutzerdefinierte Formulartypen zu schreiben.

    
Johnny 29.12.2014, 12:23
quelle

4 Antworten

2

Sie können das Format in Ihrem FormType festlegen, wenn Sie ein anderes Format wünschen.

%Vor%

Der Standardwert ist nicht 'Y-m-d' ist eine Instanz von IntlDateFormatter . Daher sollte das richtige Gebietsschema ausgewählt werden, wenn Sie keinen einzelnen Text verwenden.

  

type: integer oder string Standard: IntlDateFormatter :: MEDIUM (oder   yyyy-MM-dd, wenn das Widget single_text ist)

Ссылка Ссылка

    
Stony 29.12.2014 12:32
quelle
1

Sie sollten dies global mit einem Event Listener Ссылка

festlegen können     
user2058037 02.01.2015 00:44
quelle
1

Wenn Sie das Format Ihres Datumsfelds abhängig von der Ländereinstellung ändern möchten, müssen Sie ein benutzerdefiniertes Feld erstellen und dieses anstelle des Datums verwenden. Es ist der einzige Weg, den ich kenne.

Erstellen Sie zuerst den Dienst und übergeben Sie das Gebietsschema in den Argumenten:

%Vor%

Erstellen Sie die Klasse mit dem Code für den neuen Feldtyp. Wie Sie sehen können, basiert es auf dem Datum des Feldtyps und ändert das Format abhängig vom aktuellen Gebietsschema:

%Vor%

Verwenden Sie es in Ihrer Anwendung anstelle des Feldtyps date :

%Vor%

Ich hoffe, es hilft.

Mit freundlichen Grüßen.

    
acontell 03.01.2015 16:12
quelle
1

Sie können das date_widget von symfony unter YourProjectFolder \ vendor \ symfony \ symfony \ src \ Symfony \ Bridge \ Twig \ Ressourcen \ views \ Form \ form_div_layout.html.twig überschreiben. Kopieren Sie die Datei in eine andere Datei wie fields.html.twig und fügen Sie sie unter der globalen Ressource \ views \ Form \ ein und überschreiben Sie das date_widget (ändern Sie es in Ihr Standardformat):

%Vor%

{% - Endblock date_widget%}

Dann fügen Sie in Ihrem Formular hinzu:

%Vor%     
Hajri Aymen 05.01.2015 13:00
quelle

Tags und Links