Re: [symfony-es] Array con Dates Symfony2

87 views
Skip to first unread message

Carlos Zuniga

unread,
May 23, 2013, 1:47:36 PM5/23/13
to symfo...@googlegroups.com
2013/5/22 Guillermo Fabian Quinteros Acuña <gu.qui...@gmail.com>:
> Hola chicos, tengo una función que me retorna un Array con fecha y un valor
> suma, el problema es que devuelve como fecha esto :
>
>> Array ( [0] => Array ( [fecha] => DateTime Object ( [date] => 2013-05-06
>> 00:00:00 [timezone_type] => 3 [timezone] => UTC ) [suma] => 7180 ) [1] =>
>> Array ( [fecha] => DateTime Object ( [date] => 2013-05-17 00:00:00
>> [timezone_type] => 3 [timezone] => UTC ) [suma] => 8600 ) [2] => Array (
>> [fecha] => DateTime Object ( [date] => 2013-05-14 00:00:00 [timezone_type]
>> => 3 [timezone] => UTC ) [suma] => 5730 ) [3] => Array ( [fecha] => DateTime
>> Object ( [date] => 2013-05-14 00:00:00 [timezone_type] => 3 [timezone] =>
>> UTC ) [suma] => 5700 ) [4] => Array ( [fecha] => DateTime Object ( [date] =>
>> 2013-05-06 00:00:00 [timezone_type] => 3 [timezone] => UTC ) [suma] => 6328
>> ) )
>
>
> Necesito que me devuelva solo la fecha y la suma para poder graficarlo, ¿
> como puedo lograr manipular ese array?
>
>
> PD : el array lo obtengo de aqui.
>
>> public function getReporte(){
>>
>> $em = $this->getDoctrine()->getEntityManager();
>> $qb = $em->createQueryBuilder();
>> $desde = new \DateTime();
>> $hasta = new \DateTime();
>> $desde->modify('-1 months');
>> $resultado = $qb->select('r.centro','SUM(r.kg) AS
>> suma')->from('PSCCL\ReportesBundle\Entity\Produccion', 'r')
>> ->where($qb->expr()->between('r.fecha', ':desde', ':hasta'))
>> ->setParameter('desde', $desde)
>> ->setParameter('hasta', $hasta)
>> ->groupBy('r.centro')
>> ->getQuery()
>> ->getResult();
>> return $resultado;
>> }
>

Hola, por lo que veo te esta devolviendo un array con cada fecha
(objeto DateTime) y la suma para esa fecha. No es eso lo que quieres?
Si lo que quieres es obtener solo una fecha y su suma, usa
setMaxResults.

Saludos
--
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.

Jakala

unread,
May 24, 2013, 7:43:24 AM5/24/13
to symfo...@googlegroups.com
buenas:

quizas a lo que se refiere guillermo sea que la consulta devuelva la fecha unicamente. Has probado algo como:

$resultado = $qb->select('DATE(r.centro)','SUM(r.kg) AS suma')->from('PSCCL\ReportesBundle\Entity\Produccion', 'r')

no creo que funcione, porque el r.centro se supone que es un objeto fecha pero... quizas...


O si no, lo que puedes hacer es forzar que te devuelva un array. Al final de la consulta, que te devuelva un:

-> getArrayResult();

Guillermo Fabian Quinteros Acuña

unread,
Jun 5, 2013, 8:38:47 PM6/5/13
to symfo...@googlegroups.com
Claro, lo que necesito es que me devuelva solo la fecha y la suma, no como DateTime Object, sin timezone_type, ni timezone, al parecer debo formatear lo que me devuelve el array, y eso es lo que no puedo lograr.

Carlos Zuniga

unread,
Jun 5, 2013, 10:43:39 PM6/5/13
to symfo...@googlegroups.com
2013/6/5 Guillermo Fabian Quinteros Acuña <gu.qui...@gmail.com>:
> Claro, lo que necesito es que me devuelva solo la fecha y la suma, no como
> DateTime Object, sin timezone_type, ni timezone, al parecer debo formatear
> lo que me devuelve el array, y eso es lo que no puedo lograr.
>

Te refieres entonces a que te devuelva la fecha como un string?
Entonces recorre el array y convierte el Datetime a string con
$date->format('...').
Reply all
Reply to author
Forward
0 new messages