2014-08-31 10 views
5

Mam pole datetime w formie, która chcę dać Format maskować yyyy-mm-dd hh:mi i używam następujący kod:Symfony pola datetime Format

$builder->add('beginDate', 'datetime', array('widget' => 'single_text', 
               'date_format' => 'yyyy-MM-dd HH:i')) 

Ale co ja dostać w pole formularza jest mniej więcej tak:

2014-08-25T22: 37: 37z

chciałbym coś takiego:

2014-08-25 22:37

Czy mogę otrzymać?

Widziałem this i this ale nie znaleźliśmy prawdziwy przykład dla formatu godziny (24 godzin) i minuty

dziękuję

Odpowiedz

8

Czy próbowałeś następujące date_format w definicji datetime?

'yyyy-MM-dd HH:mm' 

zamiast co masz teraz:

'yyyy-MM-dd HH:i' 

Myślę, że mieszanie opcji format daty PHP z opcjami formacie RFC budowniczy forma symfony oczekuje, zgodnie z dokumentacją. Zapoznaj się z akceptowanym dokumentem RFC datetime formats, aby dowiedzieć się, jak go ulepszyć.

+0

ten sam wynik: '2014-08-13T00: 00: 00Z' –

+0

Biorąc pod uwagę, że dane wyjściowe zawierają sekundy i przesunięcie strefy czasowej, wyraźnie definicja formatu nie rejestruje się prawidłowo. Być może nie jest to poprawny format trybu widgetu single_text, a symfony wraca do domyślnej wartości domyślnej lub może to problem z pamięcią podręczną. Możesz wyczyścić pamięć podręczną, aby sprawdzić, czy tworzy oczekiwany format wyjściowy. 'php app/console cache: clear'. –

0

W jaki sposób utworzyłeś wyświetlacze do tego wyniku z Twig lub Php? Może chodzi o to, że może to być w stosunku do twojego lokalnego w parameters.yml i config.yml w przeciwnym razie wyświetlacz gałązka.

http://twig.sensiolabs.org/doc/filters/date.html#timezone

+0

W końcu udało mi się zaakceptować mój format ("yyyy-MM-dd HH: mm") na wejściu, chociaż wciąż pokazuje T i Z lub +2: 00 dla strefy czasowej, gdy pokazuje wartość. To jest mój ostateczny kod: '$ builder-> add ('fechaInicio', 'datetime', array ('widget' => 'single_text', 'date_format' => 'rrrr-MM-dd GG: mm', 'model_timezone '=>' Europe/Madrid ',' view_timezone '=>' Europe/Madrid ',' attr '=> array (' placeholder '=>' yyyy-mm-dd hh: mi: ss '))) ' –

+0

To link wysłać dźwięki ładne, ale problem jest teraz, w jaki sposób ustawić maskę formatu dla elementu formularza ** wartość **? To nie powiedzie się, ponieważ próbuje zastosować maskę formatu do wszystkich elementów wejściowych: '{{form_widget (edit_form.fechaInicio) | date (" Y-m-d H: i: s "," Europe/Madrid ")}}' –

4

Dlaczego nie spróbować?

$builder 
     ->add('beginDate', 'date', array(
      'widget' => 'single_text', 
      'format' => 'yyyy-MM-dd H:mm', 
     )); 
6

należy użyć format option który akceptuje HTML5 DateTime format.

$builder->add(
    'beginDate', 
    'datetime', 
    array(
     'widget' => 'single_text', 
     'format' => 'yyyy-MM-dd HH:mm' 
    ) 
) 

Opcja format powinien być stosowany zamiast date_format podczas korzystania widget = single_text.

Powiązane problemy