我尝试将事件的开始日期与当前日期进行比较,以便仅显示下一个事件。这是我在eventRepository中的尝试:
public function findNext() {
$query = $this->createQuery();
$query->matching(
$query->greaterThanOrEqual('datum_beginn', new \DateTime('midnight'))
);
return $query->execute();
}
但结果并不像预期的那样。这是结果查询:
SELECT events.* FROM events WHERE events.datum_beginn >= 1413669600 AND ...
如您所见,DateTime被转换为时间戳。如何在查询中使用MySQL NOW()或正确使用DateTime?
答案 0 :(得分:14)
使用日期的字符串值:
public function findNext() {
$query = $this->createQuery();
$date = new \DateTime('midnight');
$query->matching(
$query->greaterThanOrEqual('datum_beginn', $date->format('Y-m-d H:i:s'))
);
return $query->execute();
}
答案 1 :(得分:1)
在9个LTS中,可以直接与DateTime进行比较:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>