Php Zend Framework 2日期选择下拉列表的更改顺序
我在ZF2应用程序中有一个表单元素,它使用DateSelect允许用户输入出生日期。目前,字段的显示顺序为d-m-y。我想反转此顺序,使其显示为y-m-d。我在上遇到过一些帖子,因此建议更改PHP中的区域设置以更改顺序,但这不是我的选择。我也试过了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
$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,但它似乎是正确的方法。非常感谢。