Zend framework2 zend framework 2更改表单中的日期格式

Zend framework2 zend framework 2更改表单中的日期格式,zend-framework2,Zend Framework2,我正在尝试更改ZF2应用程序中的日期格式。我试过这个: $this->add(array( 'type' => 'Zend\Form\Element\Date', 'name' => 'date_of_entry', 'options' => array( 'label' => 'Datum unosa', 'format' =

我正在尝试更改ZF2应用程序中的日期格式。我试过这个:

         $this->add(array(
         'type' => 'Zend\Form\Element\Date',
         'name' => 'date_of_entry',
         'options' => array(
                 'label' => 'Datum unosa',
                 'format' => 'd-m-Y'
         ),
         'attributes' => array(
                 'class' => 'my_input',
                 'min' => '01-01-1970',
                 'step' => '1', 
         )
     ));
    $this->get('date_of_entry')->setFormat('d-m-Y'); 

鉴于我得到的是mm\dd\yyyy格式,有什么问题吗?

您不能在数组中设置格式–它必须通过setFormat()调用

我认为您需要删除此
'format'=>'d-m-Y'

$this->add(array(
         'type' => 'ZendFormElementDateTime',
         'name' => 'date_of_entry',
         'options' => array(
                 'label' => 'Datum unosa',
              ),
         'attributes' => array(
                 'class' => 'my_input',
                 'min' => '01-01-1970',
                 'step' => '1', 
        )
    )
);
$this->get('date_of_entry')->setFormat('d-m-Y');

希望这对您有用。

我很困惑,您是想更改zf2应用程序中的格式还是要过滤表单元素的格式?我想更改用户在应用程序中查看日期的方式。现在的格式看起来像mm\dd\yyyy,但当以数据库格式提交表单时,日期格式是Y-m-d。我只想在应用程序的视图部分更改日期格式,并在数据库中保留Y-m-d格式。在视图中,mm\dd\yyyy格式来自何处?用户是在设置这个日期还是已经设置了这个值?你就不能这样做吗$oldDate=“2014-05-27”$newDate=日期(“d-m-Y”,strotime($originalDate));?然后,如果您将此值添加到表单中,则日期将为d-m-Y。我已通过更改Chrome语言解决了此问题。在默认英语中,HTML5日期字段的日期格式为mm\dd\yyyy。更改语言时,日期格式也会更改。在后端,日期格式保持为Y-m-d格式。看起来Chrome自动将日期从本地格式转换为标准的Y-m-d格式。您的答案是正确的。我已经通过更改Chrome语言解决了这个问题。在默认英语中,HTML5日期字段的日期格式为mm\dd\yyyy。更改语言时,日期格式也会更改。在后端,日期格式保持为Y-m-d格式。看起来Chrome自动将日期从本地格式转换为标准的Y-m-d格式