2013-04-28 10 views
11

Ich mache Anwendung mit Symfony2 und Sonata-Admin-Bundle.Format für Zeitanzeige?

public function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('id') 
     ->add('fromDate'); 

es zeigt die Zeit wie diese

September 1, 2013 02:00 

so änderte ich

- ->add('fromDate'); 
+ ->add('fromDate',null,array('format' => 'yyyy-MM-dd HH:mm:ss')) 

aber es zeigt immer noch die gleiche.

bitte geben Sie mir, wie man Format für die Zeitanzeige verwendet?

+0

Dies sollte Teil Ihrer Zweigvorlage sein. – cheesemacfly

+0

@cheesemecfly Das ist nur eine Möglichkeit, und nicht unbedingt die beste. – likeitlikeit

+0

@likeitlikeit Nun, die Art, wie das Datum gerendert wird, sollte Teil der Ansicht sein, da es nur einen Anzeigezweck hat, oder fehlt mir etwas? – cheesemacfly

Antwort

4

Try

->add('fromDate','datetime',array('date_format' => 'yyyy-MM-dd HH:mm:ss')) 

Durch die Art und Weise verwendet wird, ist der entsprechende Code here. Ich denke, Ihre format Option wird vom System überschrieben, so dass es wichtig ist, stattdessen date_format zu verwenden. Für eine anwendungsweite Lösung, schauen Sie sich auch this question an.

+0

vielen Dank Dies ist eine sehr nützliche Information. – whitebear

+0

Ich wollte wissen, wie dies zu einem Unix-Timesmpt und den Datumstyp zu formatieren. Die Verwendung des Typs "Datum" funktioniert und zeigt etwas wie "24. Oktober 2013" an, aber das Datum_format ändert es nicht. irgendwelche Ideen? – Onema

0

Sie müssen zeigen, dass „Datetime“ ist der Typ Sie watn das Format Schlüssel zu verwenden und dann verwenden, zum Beispiel:

->add('fromDate',datetime,array('format' => 'yyyy-MM-dd HH:mm:ss')) 

Intern wird Sonata verwenden list_datetime.html.twig, wie Sie sich beziehen "Datetime" als Typ und enthält Formatoptionen. Unten sehen Sie die list_datetime.html.twig Sonatenbasis-Implementierung:

0

mein 'Problem' war anders. Da ich das Sonata Intl-Bundle aktiv habe, wird es verwendet, um die Datetime-Liste zu formatieren.

->add('startAt', 'datetime', array(
       'dateType' => IntlDateFormatter::LONG, 
       'timeType' => IntlDateFormatter::SHORT 
      )) 
2

Ich weiß, es ist ein alter Thread, aber ich hoffe, es wird jemand helfen ...

Versuchen Sie, dies hinzuzufügen, wie carzogliore sagte (aber Zitate werden von Datetime verpasst):

->add('fromDate', 'datetime', array('format' => 'yyyy-MM-dd HH:mm:ss')) 
2

Nichts von dem oben war für mich gearbeitet, so wagte ich die Seite Quelle zu inspizieren, die mich auf Vorlage verwendet zeigte:

<!-- START 
    fieldName: date 
    template: SonataAdminBundle:CRUD:list_date.html.twig 
    compiled template: SonataAdminBundle:CRUD:list_date.html.twig 
    --> 
<td class="sonata-ba-list-field sonata-ba-list-field-date" objectId="1">11.03.17</td> 
<!-- END - fieldName: date --> 

Und nach der Vorlage Inspektion ich die richtige Option eingereicht Namen gefunden haben :

{%- elseif field_description.options.format is defined -%} 

Also machte ich meinen Admin-Code wie diese

->add('date', null, ['format' => 'd/m/Y']) 

und es hat funktioniert.

Beachten Sie, dass Format ist das regelmäßige date() Format, und man hat nur ein einziges Platzhalter Zeichen zu verwenden, wie y für Jahr, wie yyyy2017201720172017 produziert.