Doctrine Mongodb ODM e DateTime query

Eu poderia usar alguma ajuda para este problema. Estou criando um aplicativo usando a doutrina Symfony2 + mongodb +. Eu só quero usar o Doctrine ODM para consultar todos os usuários que foram registrados nos últimos 5 minutos. Eu tenho uma coleção de usuários com um campo de data chamado date_last_login.

Então eu tento usar o construtor de consultas assim:

<?php
// Creating a DateTime object and susbtract 5 min from now
// local time is 15:40:05, timezone: 'Europe/Paris'
$_dateTime = new \DateTime();
$_interval5Min = new \DateInterval('PT5M');
$_dateTime->sub($_interval5Min);

$query = $this->createQueryBuilder('User')
                ->field('date_last_login')->gte($_dateTime)
                ->getQuery();
                ->execute();

Quando eu olhei para a consulta montada usando o symfony2 profiler, aqui está o que eu tenho:

db.User.find({ "date_last_login": { "$gte": new Date("Fri, 23 Dec 2011 15:30:05 +0100") } });

Parece bom, exceto que a data é 10 minutos antes e não 5 minutos? Eu simplesmente não entendo. Se eu despejar meu objeto php DateTime, a data está correta: 2011-12-23 15:35:05 (cinco minutos antes das 15:40).

Então eu tentei montar a mesma consulta sem subtrair nenhum minuto e, desta vez, está tudo bem:

<?php
// local time is 15:50:00
$query = $this->createQueryBuilder('User')
            ->field('date_last_login')->gte(new \DateTime())
            ->getQuery();
            ->execute();

// query is ok:
db.User.find({ "date_last_login": { "$gte": new Date("Fri, 23 Dec 2011 15:50:00 +0100") } });

O que estou fazendo de errado ? Obrigado pela ajuda

questionAnswers(2)

yourAnswerToTheQuestion