如何在Extbase存储库中比较DateTime

时间:2014-10-19 14:07:00

标签: typo3 extbase

我尝试将事件的开始日期与当前日期进行比较,以便仅显示下一个事件。这是我在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?

2 个答案:

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