如何使用DQL在symfony中获取过去24小时内的数据值sum()?

时间:2018-04-13 13:12:05

标签: symfony datetime doctrine-orm timestamp dql

我需要设置CronJob并进行计算, 我怎样才能在24小时前到达时间戳?

  $queryBuilder->where($queryBuilder->expr()->gte('ema.date','data24ago'))
        ->setParameters(['member' => $member,
            'date24ago' => (new \Datetime)->getTimestamp() - 24 * 3600
            ]);

有没有更好的方法?

2 个答案:

答案 0 :(得分:1)

如果您想通过PHP设置,请尝试简单:

 $queryBuilder->where($queryBuilder->expr()->gte('ema.date','data24ago'))
        ->setParameters(['member' => $member,
            'date24ago' => new \Datetime('yesterday'),
            ]);

答案 1 :(得分:0)

您可以使用Carbon(http://carbon.nesbot.com),这是扩展标准PHP \ Datetime对象的PHP库。

然后你可以使用

$queryBuilder
    ->where($queryBuilder->expr()->gte('ema.date','data24ago'))
    ->setParameters([
        'member' => $member,
        'date24ago' => Carbon::parse('-24 hours')->getTimestamp() // or -1 day
    ]);