我有一个国际化(英语/西班牙语)应用程序,我有一些日期问题。 表格中的我的日期字段:
$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
我该如何解决?
答案 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'));