【问题标题】:Symfony 2.1. How can I display a single_text time field in 12 hour am/pm format?Symfony 2.1。如何以 12 小时 am/pm 格式显示 single_text 时间字段?
【发布时间】:2013-11-15 04:46:39
【问题描述】:

我的表单上有一个时间字段,其中小部件设置为“single_text”。

我的美国用户需要 12 小时上午/下午格式。

http://symfony.com/doc/current/reference/forms/types/time.html#widget

虽然不是很明显,但它接受下午 2:15 的输入,但如果表单由于另一个字段上的验证错误而返回,或者稍后打开以编辑现有记录,那么它会显示 14:15,这当然是正确的但可能令人反感。

如何让它显示下午 2:15?我没有看到这样做的选项。

【问题讨论】:

    标签: symfony symfony-2.1


    【解决方案1】:

    好吧,事实证明这比应该做的要难。问题是 Time 表单类型不允许您像 Date 表单类型那样指定格式,并且它使用的格式是 H:i。是的,24 小时制 :-(

    因此,唯一的解决方案是构建您自己的使用 h:i 格式的表单类型。您可以在此处找到有关如何构建自己的表单类型的说明:

    http://symfony.com/doc/2.1/cookbook/form/create_custom_field_type.html

    然后您可以使用 Time 表单类型作为表单类型的基础,只需更改它使用的格式。时间表单类型可以在这里找到:

    /Symfony/Component/Form/Extension/Core/Type/TimeType.php
    

    【讨论】:

    • 谢谢卡洛斯。这看起来很简单。我想我会制作一个带有格式选项的版本。
    • 也许您可以修改时间表单类型以接受“格式”并为此创建拉取请求。
    猜你喜欢
    • 2013-09-15
    • 2012-02-11
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多