Php 为什么Symfony2 DateTime提前一天返回?

Php 为什么Symfony2 DateTime提前一天返回?,php,symfony,datetime,sonata-admin,Php,Symfony,Datetime,Sonata Admin,控制器中的我的代码: $yesterday = new \DateTime(); $yesterday->sub(new \DateInterval('P1D')); $customerReportForm->add('dateFrom', 'date', ['data'=> $yesterday 'attr' => array('class' => 'datepicker', "data-date-format"=>"yy-mm-dd")]);

控制器中的我的代码

  $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
的值显示我在表单中被选中前一天的日期

例如,如果我将输入日期选择器“2015-30-12”,它将显示“2015-29-12”

为什么?

只需
var\u dump(new DateTime())
即可显示正确的日期

PHP 5.5.29
Symfony-2.3我不明白你真正的问题是什么。。。 使用
$dayed->sub(new\DateInterval('P1D')。你的约会通常比今天早


您在新的日期时间上使用了一个子函数php。

我也不理解这里的问题。。。你能澄清一下吗?设置
数据
属性会适得其反。请使用控制器/表单代码更新您的问题…^^^听起来您没有处理传入的请求。您应该使用
Request$Request
键入提示控制器操作,而不必使用
$this->getRequest()
,并且还需要调用
$customerReportForm->handleRequest($Request)
否,它是表单中的默认值。我在datepicker中更改它并提交