2012-05-24 4 views
0

У меня есть интернациональное (английское/испанское) приложение, и у меня есть некоторые проблемы с датами. Мои поля даты в формах: ФорматSymfony2: формат Datetime на основе языка

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

Дата по умолчанию на основе локали: 'эс' => 23/05/2012 'ан' => 23 мая 2012

Но я могу «т сделать это, когда локали =» ы в мой контроллер:

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

у меня есть ошибка DateTime конструктора, поскольку дата, переданная имеет формат дД/ММ/ГГ и должен быть ММ/дД/ГГ

Как я могу это разрешить?

ответ

0

Только конец пользователю (так что html) интернационален.

Входные данные должны получить карту на объект DateTime, который вы должны потребовать от формы:

$ форма-> bindRequest ($ this-> GetRequest()); $ myDateTime = $ form-> get ('BeginDate');

+0

Но в форме, не связанной с сущностью. Могу ли я сделать $ form-> bindRequest ($ this-> getRequest()) ;? Я говорю, например, о фильтре формы litle. – smoreno

0

Попробуйте использовать DateTime::createFromFormat(). В результате получилось бы что-то вроде:

$formats = array('en' => 'F d, Y', 'es' => 'd/m/Y'); 
$myDateTime = DateTime::createFromFormat($formats[$request->getLocale()], $request->get('begin_date')); 
Смежные вопросы