Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите последните 7 дни с PHP

Най-стабилният начин да направите това е да използвате DateTime вместо strtotime :

$now = new DateTime( "7 days ago", new DateTimeZone('America/New_York'));
$interval = new DateInterval( 'P1D'); // 1 Day interval
$period = new DatePeriod( $now, $interval, 7); // 7 Days

Сега можете да оформите своя масив от дати така:

$sale_data = array();
foreach( $period as $day) {
    $key = $day->format( 'M d');
    $sale_data[ $key ] = 0;
}

Това инициализира вашия масив на нещо като:

array(8) {
 ["Jun 18"]=>      int(0)
  ["Jun 19"]=>      int(0)
  ["Jun 20"]=>      int(0)
  ["Jun 21"]=>      int(0)
  ["Jun 22"]=>      int(0)
  ["Jun 23"]=>      int(0)
  ["Jun 24"]=>      int(0)
  ["Jun 25"]=>      int(0)
}

Сега имате масив с всички възможни дати през последните 7 дни и можете да направите това във вашия цикъл:

$display_date = date('M d', $sale['created']);
$sale_data[$display_date] += $sale['amt'];

Не е нужно да проверявате дали ключът на масива съществува, тъй като е гарантирано, че съществува.

И накрая, бих препоръчал да разгледате DATETIME или други свързани типове колони за дата/час, тъй като те биха били по-полезни тук, отколкото съхраняването на UNIX времеви печати. Може да използвате MySQL функции за дата/час, за да изберете правилно редовете, които търсите, вместо да се налага да създавате времеви печат на UNIX всеки път, когато искате да правите заявка за данни въз основа на времето.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Симулиране на функция за забавяне на MySQL

  2. Не може да съхранява UTF8 знаци в MySQL

  3. MySQL Изчислете възрастта по година месец и ден

  4. Хибернация оптимистично заключване..как работи?

  5. Как да съкратите таблица с ограничен външен ключ?