doctrine2 with php Datetime month

时间:2014-04-01 08:00:57

标签: php symfony datetime doctrine-orm

我使用doctrine和Symfony2将一些事件存储在数据库中,这些事件有两个日期时间参数,即事件的开始和结束。我需要知道这些事件在某个月内是否有效,但我找不到办法。我尝试过:

$now = new \Datetime('now');
    $qb  = $this->createQueryBuilder('e');

    $qb->where('e.start <= :now AND e.end >= :now')
       ->setParameter('now', $now);

    return $qb->getQuery()
              ->getArrayResult();

但它限制了当天,而不是月份。有办法检查吗?非常感谢!

1 个答案:

答案 0 :(得分:4)

您可以使用以下代码

$monthStart = new DateTime(date('Y-m-01') . " 00:00:00");
$monthEnd = new DateTime(date('Y-m-t'). " 23:59:59");

$qb  = $this->createQueryBuilder('e');

$qb
   ->where('e.start <= :end AND e.end >= :start')
   ->setParameter('start', $monthStart)
   ->setParameter('end', $monthEnd);

return $qb->getQuery()
          ->getArrayResult();