2015-12-30 3 views
2

Мой код в controller:Почему Symfony2 DateTime возвращает день раньше?

$yesterday = new \DateTime(); 
    $yesterday->sub(new \DateInterval('P1D')); 
    $customerReportForm->add('dateFrom', 'date', ['data'=> $yesterday 'attr' => array('class' => 'datepicker', "data-date-format"=>"yy-mm-dd")]); 
    $customerReportForm->add('dateTo', 'date', ['data'=>$yesterday,' 'attr' => array('class' => 'datepicker', "data-date-format"=>"yy-mm-dd")]); 

И у меня есть обработчик POST в одном методе контроллера:

if($this->getRequest()->isMethod('POST')) 
{ 
    $dateFrom = $customerReportForm->get('dateFrom')->getData(); 
    $dateTo = $customerReportForm->get('dateTo')->getData(); 
} 

dateFrom значения и dateTo показывает мне дату на день раньше, то я выбрать в форме.

Например, если я наберу в DatePicker «2015-30-12» он покажет мне «2015-29-12»

Почему?

Только var_dump(new DateTime()) показывает правильную дату.

PHP 5.5.29 Symfony - 2,3

+0

Я также не понимаю эту проблему ... Можете ли вы немного пояснить? Установка атрибута 'data' является контрпродуктивным. Пожалуйста, обновите свой вопрос с помощью кода контроллера/формы ... –

+0

^^ Похоже, что вы не обрабатываете запрос, который входит. Вы должны ввести тип, указывающее действие вашего контроллера с помощью 'Request $ request' вместо того, чтобы использовать' $ this-> getRequest() ', и вам также нужен вызов' $ customerReportForm-> handleRequest ($ request) ' –

ответ

1

Я не понимаю, что ваша реальная проблема ... используется $yesterday->sub(new \DateInterval('P1D'));. Обычно это поведение, что ваша дата раньше, чем сегодня.

Вы используете подфункцию php в новой DateTime.

+0

Нет, это значение по умолчанию в форме. Я изменяю его в datepicker и отправляю –

Смежные вопросы