2

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

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

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

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

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

4

1 回答 1

2

好吧,事实证明这比应该的要难。问题是 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
于 2012-09-16T07:50:34.303 回答