Symfony 2.1。如何以12小时上午/下午格式显示single_text时间字段?

时间:2012-09-16 02:26:23

标签: symfony symfony-2.1

我的表单上有一个时间字段,其中widget被设置为'single_text'。

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

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

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

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

1 个答案:

答案 0 :(得分:2)

嗯,事实证明这比应该更难。问题是Time表单类型不允许您指定类似Date表单类型的格式,它使用的格式是H:i。是的,24小时格式: - (

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

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

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

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