Symfony new \ DateTime()始终返回00:00:00.000000

时间:2017-04-17 10:29:41

标签: php symfony datetime doctrine

我试图设置会话实体的开始和结束时间。

这就是我设置启动时的方法:

    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,
    ));
}

然而,当我转储会话实体时,它返回:

enter image description here

由于某种原因,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;
}

}

1 个答案:

答案 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;