Php Zend Framework 2日期选择下拉列表的更改顺序

Php Zend Framework 2日期选择下拉列表的更改顺序,php,zend-framework2,Php,Zend Framework2,我在ZF2应用程序中有一个表单元素,它使用DateSelect允许用户输入出生日期。目前,字段的显示顺序为d-m-y。我想反转此顺序,使其显示为y-m-d。我在上遇到过一些帖子,因此建议更改PHP中的区域设置以更改顺序,但这不是我的选择。我也试过了 $this->add(array( 'type' => 'Zend\Form\Element\DateSelect', 'name' => 'dob', 'options

我在ZF2应用程序中有一个表单元素,它使用DateSelect允许用户输入出生日期。目前,字段的显示顺序为d-m-y。我想反转此顺序,使其显示为y-m-d。我在上遇到过一些帖子,因此建议更改PHP中的区域设置以更改顺序,但这不是我的选择。我也试过了

 $this->add(array(
        'type'    => 'Zend\Form\Element\DateSelect',
        'name'    => 'dob',
        'options' => array(
            'label' => 'Date of Birth',
            'create_empty_option' => true,
            'pattern' => $this->options['isMobile'] ? 'd MMM y' : 'd MMM y',
            'empty_options' => array(
                'day' => 'DD',
                'month' => 'MM',
                'year' => 'YYYY',
            ),
            'allowLabelHTML' => TRUE,
            'required' => true,
        )
    ));
    $this->get('dob')->setFormat('Y-m-d');

这是对另一个SO问题的公认答案,但对我来说,这会产生一个内部服务器错误。如果这是不可能的,我会感到惊讶,可能是使用了一个帮助文件,但我在网上找不到任何建议,除了上面提到的和更改区域设置之外。有人能帮忙吗

由于方法
setFormat()
Zend\Form\Element\DateSelect
中不存在,因此会出现致命错误。 我认为如果不编写自己的视图助手,就不可能实现这一点

Zend\Form\Element\DateSelect
基于区域设置,因此您可以将区域设置短代码作为参数传递给查看帮助程序,这样元素的顺序将适合提供的区域

此视图帮助程序接受3个参数
$This->formDateSelect($element,$intlFormat,$locale)
,因此您可以这样使用它:

echo$this->formDateSelect($form->get('dob'),\IntlDateFormatter::LONG,'en_Gb')

或者……
echo$this->formDateSelect()->setLocale('en_Gb')->render($form->get('dob')

或者。。。您可以在
php.ini
文件中更改区域设置

intl.default\u locale=en\u Gb


在日志文件中查找错误文本这是一个“调用未定义的方法”错误。我需要检查这个SzymonM,但它似乎是正确的方法。非常感谢。