带有php Datetime月的doctrine2

带有php Datetime月的doctrine2,php,symfony,datetime,doctrine-orm,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

我使用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();
$now=new\Datetime('now');
$qb=$this->createQueryBuilder('e');
$qb->where('e.start=:now')
->setParameter('now',$now);
返回$qb->getQuery()
->getArrayResult();

但它只限于一天,而不是一个月。有办法检查吗?非常感谢

您可以使用以下代码

$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();
$monthStart=新日期时间(日期('Y-m-01')“00:00:00”);
$monthEnd=新日期时间(日期(“Y-m-t”)“23:59:59”);
$qb=$this->createQueryBuilder('e');
$qb
->其中('e.start=:start')
->setParameter('start',$monthStart)
->setParameter('end',$monthEnd);
返回$qb->getQuery()
->getArrayResult();

您可以使用以下代码

$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();
$monthStart=新日期时间(日期('Y-m-01')“00:00:00”);
$monthEnd=新日期时间(日期(“Y-m-t”)“23:59:59”);
$qb=$this->createQueryBuilder('e');
$qb
->其中('e.start=:start')
->setParameter('start',$monthStart)
->setParameter('end',$monthEnd);
返回$qb->getQuery()
->getArrayResult();

将“now”传递给DateTime会给您带来什么?我一直认为通过传递DateTime什么都没有得到。@JakeN
public DateTime::u构造([string$time=“now”[,DateTimeZone$timezone=NULL]])
默认值是“now”,传递“now”到DateTime会给你现在吗?我一直以为你现在得到的是什么都不传递DateTime。@JakeN
public DateTime::u构造([string$time=“now”[,DateTimeZone$timezone=NULL]])
默认值是“now”