2014-08-31 19 views
5

Tôi có một trường datetime trong một hình thức mà tôi muốn từ bỏ định dạng mặt nạ yyyy-mm-dd hh:mi, và tôi sử dụng đoạn mã sau:Symfony datetime trường định dạng

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

Nhưng những gì tôi nhận được trong lĩnh vực hình thức là một cái gì đó như thế này:

2014-08-25T22: 37: 37Z

tôi muốn một cái gì đó như:

2014-08-25 22:37

Tôi có thể có được điều này?

Tôi đã nhìn thấy thisthis nhưng không tìm thấy một ví dụ thực tế trong nhiều giờ (định dạng 24 giờ) và phút

cảm ơn bạn

Trả lời

8

Bạn đã thử những điều sau date_format trong định nghĩa datetime của bạn?

'yyyy-MM-dd HH:mm' 

thay vì những gì bạn có bây giờ:

'yyyy-MM-dd HH:i' 

Tôi nghĩ rằng bạn đang trộn tùy chọn định dạng ngày tháng PHP với các tùy chọn định dạng RFC những người xây dựng hình thức symfony hy vọng, theo các tài liệu hướng dẫn. Hãy xem xét RFC datetime formats được chấp nhận để xem cách tinh chỉnh nó.

+0

cùng một kết quả: '2014-08-13T00: 00: 00Z' –

+0

Cho rằng đầu ra bao gồm giây và chênh lệch múi giờ, rõ ràng định nghĩa định dạng không được đăng ký đúng cách. Có lẽ nó không phải là một định dạng hợp lệ cho chế độ widget single_text và symfony đang rơi trở lại mặc định được xác định trước hoặc có thể đó là vấn đề về bộ nhớ cache. Bạn có thể xóa bộ nhớ cache của mình để xem liệu bộ lọc có tạo ra định dạng đầu ra mong muốn hay không. 'php app/console cache: xóa'. –

0

Biểu mẫu của bạn hiển thị như thế nào cho kết quả này, với Twig hoặc Php? Có thể nó liên quan đến địa phương của bạn trong parameters.yml et config.yml nếu không màn hình hiển thị cành.

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

+0

Cuối cùng tôi đã chấp nhận định dạng của mình ('yyyy-MM-dd HH: mm') ở đầu vào mặc dù nó vẫn hiển thị T và Z hoặc +2: 00 cho múi giờ khi hiển thị giá trị. Đây là mã cuối cùng của tôi: '$ builder-> add ('fechaInicio', 'datetime', mảng ('widget' => 'single_text', 'date_format' => 'yyyy-MM-dd HH: mm', 'model_timezone '=>' Châu Âu/Madrid ',' view_timezone '=>' Châu Âu/Madrid ',' attr '=> mảng (' placeholder '=>' yyyy-mm-dd hh: mi: ss '))) ' –

+0

Điều đó liên kết bạn gửi âm thanh tốt đẹp, nhưng vấn đề bây giờ là, làm thế nào để tôi đặt mặt nạ định dạng cho một mục mẫu ** giá trị **? Điều này không thành công vì nó cố gắng áp dụng mặt nạ định dạng cho tất cả phần tử đầu vào: '{{form_widget (edit_form.fechaInicio) | date (" Y-m-d H: i: s "," Châu Âu/Madrid ")}}' –

4

Tại sao bạn không thử cái này?

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

Bạn nên sử dụng format option mà chấp nhận HTML5 DateTime format.

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

Tùy chọn format nên được sử dụng thay vì date_format khi sử dụng widget = single_text.

Các vấn đề liên quan