Symfony2:为什么我的时间字段不在实时服务器上验证

时间:2012-02-24 15:59:44

标签: datetime symfony

我有以下表单字段(在formType中定义):

->add('startDate','datetime',array(
                'required' => false,
                'date_widget' => 'single_text',
                'time_widget' => 'single_text',
            ));

奇怪的是:在我的本地开发机器上,当我输入一些时间(如“09:33”)时,一切都按预期工作。但是在实时服务器上,表单告诉我保存时,该值无效。有人能告诉我我做错了什么吗?

2 个答案:

答案 0 :(得分:1)

一个可能的原因是Intl未在您的实时服务器和开发计算机上配置相同的区域设置。

默认情况下,Intl * Formatters将使用\Locale::getDefault()值。你必须使用app / config / config.yml来配置它,例如:

framework:
    default_locale: en

答案 1 :(得分:0)

  

single_text:呈现单个文本输入。用户的输入基于格式option验证。

您没有指定format选项,表示默认为IntlDateFormatter::MEDIUMexampleJan 12, 1952)。

  

传递给IntlDateFormatter类的选项,用于将用户输入转换为正确的格式。 当widget选项设置为single_text时,这是至关重要的,并将定义用户输入数据的方式。默认情况下,格式是根据当前用户区域设置确定的。您可以通过将格式作为字符串传递来覆盖它。

也许您应该尝试设置format选项,并比较本地计算机和生产服务器上的区域设置。