Symfony的日期时间字段格式

Symfony的日期时间字段格式

问题描述:

我有,我想给格式掩码yyyy-mm-dd hh:mi形式的日期时间字段,我用下面的代码:Symfony的日期时间字段格式

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

但我得到的表单字段是这样的:

2014-08-25T22:37:37Z

我想是这样的:

2014年8月25日22:37

我能得到这个?

我见过thisthis,但没有找到几个小时(24小时格式)和分钟

谢谢

您是否尝试过一个真实的例子下面您的日期时间定义date_format

'yyyy-MM-dd HH:mm' 

,而不是你现在拥有的一切:

'yyyy-MM-dd HH:i' 

我觉得你混合symfony的表单生成器预计RFC格式选项PHP日期格式选项,根据文档。仔细阅读已接受的RFC datetime formats以了解如何调整它。

+0

相同的结果:'2014-08-13T00:00:00Z' – 2014-08-31 22:01:57

+0

鉴于输出包含秒和时区偏移量,显然格式定义没有正确注册。也许它不是single_text小部件模式的有效格式,symfony正在回退到预定义的默认值,或者它可能是缓存问题。您可以清除缓存以查看是否会生成预期的输出格式。 'php应用程序/控制台缓存:清除“。 – 2014-08-31 22:40:34

你是怎么形成这个结果的显示器,用Twig或Php? 也许它是关于也许它是关于你的本地在parameters.ymlconfig.yml否则树枝显示。

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

+0

我终于得到它接受我的格式:在输入端(“YYYY-MM-DD HH毫米”)虽然它仍然显示了T和Z或一个2:00时区表示一个值时。这是我的最后的代码:'$ builder->加( 'fechaInicio', '日期时间',阵列( '工具'=> 'single_text', 'DATE_FORMAT'=> 'YYYY-MM-DD HH:MM',“model_timezone '=> '欧洲/马德里', 'view_timezone'=> '欧洲/马德里', 'ATTR'=>数组(' 占位符” => 'YYYY-MM-DD HH:MI:SS')))' – 2014-09-01 23:37:48

+0

即你发送的链接听起来不错,但现在的问题是,我如何设置表单项**值**的格式掩码?这个失败,因为它试图格式掩码应用到所有输入元件:'{{form_widget(edit_form.fechaInicio)|日期( “Y-M-d H:I:S”, “欧洲/马德里”)}}' – 2014-09-02 00:14:17

你为什么不试试呢?

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

你有没有尝试这样的事:

$builder->add('beginDate', 'datetime', array(
      'widget' => 'single_text', 
      // input format for single_text 
      'format' => 'dd/MM/yyyy kk:mm', 
     )); 

参考这个: http://symfony.com/doc/current/reference/forms/types/datetime.html 这: http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax

您应该使用它接受HTML5 DateTime formatformat option

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

format选项应该使用widget = single_text时用来代替date_format