我正在为我的应用程序使用symfony2。在日期类型表单字段验证期间,symfony尝试解析传入的字符串日期值。由于某种原因,这在本地工作(运行MAMP& php 5.3.6)但在我们的远程fedora服务器上失败。 (php 5.3.8)。这里有一些detils,我包括可能相关的任何东西。
实例化新的IntlDateFormatter时我正在使用
locale: en_US_POSIX
date format: 2
time format: -1
timezone: America/Chicago
calendar: 1
pattern: MM-dd-yyyy
使用 11/21/2012
之类的日期在IntlDateFormatter上调用Parse$timestamp = $this->getIntlDateFormatter()->parse($value);
这是getIntlDateFormatter方法。
protected function getIntlDateFormatter()
{
$dateFormat = $this->dateFormat;
$timeFormat = $this->timeFormat;
$timezone = $this->outputTimezone;
$calendar = $this->calendar;
$pattern = $this->pattern;
return new \IntlDateFormatter(\Locale::getDefault(), $dateFormat, $timeFormat, $timezone, $calendar, $pattern);
}
处理将字符串日期值转换为本地化日期时间值的整个类是here ...
这会导致解析失败,可以使用以下命令访问错误:intl_get_error_message()
以下是远程计算机上phpinfo()的一些片段:
如果它有帮助......整个phpinfo()的屏幕截图()..... http://f.cl.ly/items/3q2q2C3Z0b0K1a0F0c3F/phpinfo%20.png
答案 0 :(得分:3)
我也遇到了这个问题然后我深入搜索并发现日期格式错误。你应该选择这种格式的日期'format' => 'yyyy-MM-dd H:m'
这是完整列表文件将此行添加到过滤器字段
->add('createdAt', 'doctrine_orm_datetime_range', array('field_type' => 'sonata_type_datetime_range'), null, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd H:m',
'required' => false,
'attr' =>array('class' => 'datetimepicker'))
)
然后以此格式2014-09-29 4:46
希望这会解决问题