查找从今天到下一个或最近30天的所有记录

I'm on ZendFramework2 and using doctrine2.

I want to find all records from today's DateTime to next or last 30 days related to deal.

Here's my doctrine query and code,

$emailRepo = $em->getRepository('App\Entity\Email')->findBy(['deal' => $deal]);
foreach ($emailRepo as $email) {
            $sendAt = $email->getSendAt();
        }

I have DateTime object in sendAt variable,

From some references I found this strtotime function.

$data = date('Y-m-d h:i:s', strtotime("+30 days"));
$data = date('Y-m-d h:i:s', strtotime("-30 days"));

But It didn't worked for me.

What is the proper way to write it?

After searching little bit, Query builder worked for me.

For Next 30 days,

$date = date('Y-m-d h:i:s', strtotime("+30 days"))

$sendAt = $em->getRepository('App\Entity\Email')
            ->createQueryBuilder('e')
            ->select('e')
            ->where('e.sendAt BETWEEN :today AND :n30days')
            ->setParameter('today', date('Y-m-d h:i:s'))
            ->setParameter('n30days', $date)
            ->getQuery()
            ->getArrayResult();

For Last 30 days,

$date = date('Y-m-d h:i:s', strtotime("-30 days"))

$sendAt = $em->getRepository('App\Entity\Email')
            ->createQueryBuilder('e')
            ->select('e')
            ->where('e.sendAt BETWEEN :n30days AND :today')
            ->setParameter('today', date('Y-m-d h:i:s'))
            ->setParameter('n30days', $date)
            ->getQuery()
            ->getArrayResult();