php - Zend Framework 2 DateSelect/MonthSelect 格式化

标签 php zend-form zend-framework2 zend-form-element

使用新发布的 Zend Framework 2 版本,two new form elements were added ; DateSelectMonthSelect。我想用前者,它增加了三个选择;日、月和年。但是,我在按照自己的意愿格式化输出时遇到问题 - 并且没有这方面的文档!

我正在将表单元素添加到我的表单中(取自 this page ):

$this->add(array(
    'type'    => 'Zend\Form\Element\DateSelect',
    'name'    => 'birthDate',
    'options' => array(
        'label'               => 'Date',
        'create_empty_option' => true,
        'day_attributes'      => array(
            'data-placeholder' => 'Day',
            'style'            => 'width: 20%',
        ),
        'month_attributes'    => array(
            'data-placeholder' => 'Month',
            'style'            => 'width: 20%',
        ),
        'year_attributes'     => array(
            'data-placeholder' => 'Year',
            'style'            => 'width: 20%',
        )
    )
));

对于输出,我是这样做的:

echo $this->formDateSelect($form->get('birthDate'));

问题是我不知道如何控制选择的格式化方式。例如,它们目前以这种形式输出:[month] [day], [year]。我想改变两件事;首先,我想切换日期和月份,其次,我想去掉逗号。

助手使用 IntlDateFormatter 类来格式化选择。在源代码中,我注意到您可以使用 predefined constants调用 __invoke() 时的日期类型 [link to source code] ,像这样:

echo $this->formDateSelect($form->get('birthDate'), IntlDateFormatter::SHORT);

尝试了所有的常量,还是无法得到我想要的格式。

我注意到这三个选择有 setter/getter ,但是对它们中的每一个使用 formSelect View 助手,空的选择被呈现,因为数据填充在新的 View 助手中。所以这几乎违背了单独使用选择的目的;那么我还不如使用常规选择。

有谁知道如何更好地控制我选择的格式?有没有可能没有太多麻烦,或者我应该只使用三个常规选择以获得最大的灵 active ?

最佳答案

ViewHelper 的格式是$this->formDateSelect($element, $intlFormat, $locale)

话虽这么说,您应该能够通过访问当前的区域设置并将 int 插入 ViewHelpers __invoke() 来创建您想要的输出。 .看到 getLocale() ViewHelper 暗示,未使用配置中的默认 translator,因此您必须为此 ViewHelper 显式设置 locale,但它应该可以正常工作; )

如果这对您来说效果不佳,我建议您在 his Blog about the new Form Features 上给 Bakura 发消息。

关于php - Zend Framework 2 DateSelect/MonthSelect 格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668606/

相关文章:

javascript - 条件必填字段

php - 面向对象设计 : Is it good to restrict I/O parameters?

php - 使用 PHP 从 JSON 文件中获取数据

php - TYPO3 Fluid 在动态渲染模板中的使用

database - Zend 框架 : Populating DB data to a Zend Form dropdown element

zend-framework - Zend Form Validation::Does exist oposite validator to Identical?[如何检查与 'str' 不相同的输入]

php - zend框架验证模型中的数据而不是表单中的数据

javascript - 如何在集合字段集设置属性(id)(原则 2,zend 框架 2)

php - Zend Framework 2 Db\Adapter\Adapter 查询结果集像 ZF1

http - 在 ZF2 Controller 中获取请求授权 header