Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
Ventas diarias resumidas de los últimos 30 días en el gráfico de Google

Tengo una mesa con ventas. De esta tabla, tomo todos los resultados de los últimos 30 días, sumo los precios con la misma fecha y obtengo esto como una matriz.

SQL:

 SELECT date , price , id , SUM(price) AS daylieprice FROM sales WHERE id = :id AND date BETWEEN DATE_FORMAT(CURDATE() , '%Y-%m-%d') - interval 1 month AND DATE_FORMAT(CURDATE() , '%Y-%m-%d')) GROUP BY date


Así que tengo por ejemplo:
ARRAY ['fecha'] - ARRAY ['precio del día']
"2017-03-29" - "1"
"2017-04-02" - "5"
"2017-04-04" - "3"


El gráfico de Google se ve así:

 ['<? echo date('d', strtotime("-2 day")) ?>', VALUE] ['<? echo date('d', strtotime("-1 day")) ?>', VALUE] ['<? echo date('d') ?> ', VALUE]

¿Hay alguna manera de generar el valor de la matriz de esa manera?

 date('d', strtotime("-2 day") , ARRAY ['daylieprice']); date('d', strtotime("-1 day") , ARRAY ['daylieprice']); date('d', ARRAY ['daylieprice']);

¿Debería significar tomar el valor de la matriz fácilmente con date('d') o date('d', strtotime("-1 day") sin hacer un bucle para cada valor?

¿O tengo que hacer una solicitud de SQL para todos los días?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Se me ocurrió esto. Uso DateTime para dar más control y flexibilidad con los formatos de entrada y salida. Esto recorre su matriz de entrada y resta 2 días de la primera entrada, 1 día de la segunda entrada y mantiene la tercera entrada igual:

 <?php $input = [ [ 'date' => '2017-03-29', 'daylieprice' => 1, ], [ 'date' => '2017-04-02', 'daylieprice' => 5, ], [ 'date' => '2017-04-04', 'daylieprice' => 3, ], ]; $output = []; $number_of_dates = count($input) - 1; foreach ($input as $v) { $date = DateTime::createFromFormat('Ym-d', $v['date']) ->modify(sprintf('-%d days', $number_of_dates)) ->format('Ym-d'); $number_of_dates--; $output[] = "'" . $date . "', " . $v['daylieprice']; }

Esto produce una matriz como:

 Array ( [0] => '2017-03-27', 1 [1] => '2017-04-01', 5 [2] => '2017-04-04', 3 )

Espero que esto ayude y puedas descubrir exactamente cómo implementarlo para resolver tu problema.

Editar: acabo de ver echo date('d' así que tal vez solo desee el día del mes, eso es fácil, puede cambiar ->format('Ym-d'); en el ciclo a ->format('d');

Demostración: https://eval.in/784353

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!