我试图设置会话实体的开始和结束时间。
这就是我设置启动时的方法:
public function newAction(Request $request)
{
$user = $this->getUser();
$session = new Session();
$session->setUserId($user);
$date = new \DateTime();
$date->setTimeZone(new \DateTimeZone('Europe/Amsterdam'));
$session->setStartTime($date);
$em = $this->getDoctrine()->getManager();
$em->persist($session);
$em->flush();
return $this->redirectToRoute('beverage_index', array('session' => $session->getId()));
}
这是我设置我的结束时间的方式
public function stopDrinking(Session $session)
{
$user = $this->getUser();
$em = $this->getDoctrine()->getManager();
$session->setEndTime(new \DateTime());
$em->persist($session);
$em->flush();
return $this->render('drank/stop.html.twig', array(
'session' => $session,
));
}
然而,当我转储会话实体时,它返回:
由于某种原因,startdate时间设置为00:00:00.000000而不是当前时间。但是,结束时间设置为当前时间。我没有做任何不同的事情,但我仍然无法获得正确的开始时间。
会话实体(startTime& endTime)
/**
* @var \DateTime
*
* @ORM\Column(name="StartTime", type="date", nullable=true )
*/
private $startTime;
/**
* @var \DateTime
*
* @ORM\Column(name="EndTime", type="date", nullable=true)
*/
private $endTime;
/**
* Set startTime
*
* @param \DateTime $startTime
*
* @return Session
*/
public function setStartTime($startTime)
{
$this->startTime = $startTime;
return $this;
}
/**
* Get startTime
*
* @return \DateTime
*/
public function getStartTime()
{
return $this->startTime;
}
/**
* Set endTime
*
* @param \DateTime $endTime
*
* @return Session
*/
public function setEndTime($endTime)
{
$this->endTime = $endTime;
return $this;
}
/**
* Get endTime
*
* @return \DateTime
*/
public function getEndTime()
{
return $this->endTime;
}
}
答案 0 :(得分:0)
您的ORM定义错误
使用type="datetime"
类型而不是type="date"
/**
* @var \DateTime
*
* @ORM\Column(name="StartTime", type="datetime", nullable=true )
*/
private $startTime;
/**
* @var \DateTime
*
* @ORM\Column(name="EndTime", type="datetime", nullable=true)
*/
private $endTime;