我使用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();
但它限制了当天,而不是月份。有办法检查吗?非常感谢!
答案 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();