美好的一天,
我正在尝试在我的学说查询构建器中获取"从现在起超过 2 个月"和"从现在起小于六个月"的日期。
我目前拥有的是;
if ($type == 'older_than_two_months') {
$qb->andWhere('i.createdAt < ');
}
if ($type == 'younger_than_six_months') {
$qb->andWhere('i.createdAt > ');
}
$qb->orderBy('i.createdAt', 'DESC')
->setParameter('status', $status);
我只需要添加一个额外的参数吗?但我不知道如何获得几个月前的日期。
实际上使用PHP DateTime 非常简单:
if ($type == 'older_than_two_months') {
$qb->andWhere('i.createdAt < :olderThan')
->setParameter('olderThan', new DateTime('-2 months'));
}
if ($type == 'younger_than_six_months') {
$qb->andWhere('i.createdAt > :youngerThan')
->setParameter('olderThan', new DateTime('-6 months'));
}
if ($type == 'older_than_two_months') {
$qb->andWhere('f.dateAdded < :twoMonthsAgo')
$qb->setParameter(':twoMonthsAgo', (new DateTime())->modify('-2months'))
}
if ($type == 'younger_than_six_months') {
$qb->andWhere('f.dateAdded > :sixMonthsAgo')
$qb->setParameter(':sixMonthsAgo', (new DateTime())->modify('-6months'))
}