【问题标题】:Doctrine - query with date range教义 - 查询日期范围
【发布时间】:2019-01-22 09:22:43
【问题描述】:

我编写了一个查询,我可以在我的表单中调用它来选择日期范围并返回该范围内的所有数据库数据。

api 调用工作正常,但是当我设置日期参数时,它返回一个空结果。

$date = new \Datetime();

    $result = $this->getMyRepository()
        ->createQueryBuilder('a')
        ->select('a')
        ->where('a.date >= :from')
        ->andWhere('a.date <= :to')
        ->setParameter('from', $date->format('Y-m-d H:i:s'))
        ->setParameter('to',   $date->format('Y-m-d H:i:s'))
        ->orderBy('a.id')
        ->getQuery()
        ->getArrayResult();

    return $result;

【问题讨论】:

标签: php datetime doctrine query-builder


【解决方案1】:

在我看来,您在fromto 日期中使用了format,您不需要这样做。另外,我注意到$date 已用于fromto。我敢肯定你不是故意这样使用的。

替换这个,

 ->setParameter('from', $date->format('Y-m-d H:i:s'))
 ->setParameter('to',   $date->format('Y-m-d H:i:s'))

有了这个,

$dateFrom = new \Datetime();
$dateFrom->setDate(2017, 1, 31);

$dateTo = new \Datetime();
$dateTo->setDate(2017, 12, 31);

->setParameter('from', $dateFrom )
->setParameter('to',   $dateTo)

希望这会有所帮助。

干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2019-08-16
    • 2014-12-17
    • 2014-01-07
    • 2011-01-01
    相关资源
    最近更新 更多