Symfony2:基于区域设置的日期时间格式

时间:2012-05-24 03:22:42

标签: symfony datetime-format

我有一个国际化(英语/西班牙语)应用程序,我有一些日期问题。 表格中的我的日期字段:

 $builder->add('begin_date', 'date', array('required' => false, 'widget' => 'single_text'))

默认情况下基于区域设置的日期格式: 'es'=> 23/05/2012 'en'=> 2012年5月23日

但是当我的控制器中的locale ='es'时,我无法做到这一点:

$my_datetime = new \DateTime($request->get('begin_date') 

我有一个日期时间构造函数错误,因为传递的日期格式为dd / MM / YY,应为MM / dd / YY

我该如何解决?

2 个答案:

答案 0 :(得分:0)

只有用户的结尾(因此html)才会国际化。

数据输入应该映射到DateTime对象,您应该从表单中请求:

$形式 - > bindRequest($这 - > Request()方法); $ myDateTime = $ form-> get('BeginDate');

答案 1 :(得分:0)

尝试使用DateTime::createFromFormat()。 会导致如下所示:

$formats    = array('en' => 'F d, Y', 'es' => 'd/m/Y');
$myDateTime = DateTime::createFromFormat($formats[$request->getLocale()], $request->get('begin_date'));