Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać ostatnie 7 dni przy użyciu PHP

Najbardziej niezawodnym sposobem na to jest użycie DateTime zamiast 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

Teraz możesz utworzyć swoją tablicę dat w następujący sposób:

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

To inicjuje twoją tablicę na coś takiego:

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)
}

Teraz masz tablicę ze wszystkimi możliwymi datami z ostatnich 7 dni i możesz to zrobić w swojej pętli:

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

Nie musisz sprawdzać, czy klucz tablicy istnieje, ponieważ na pewno istnieje.

Na koniec polecam zajrzeć do DATETIME lub inne powiązane typy kolumn daty/godziny, ponieważ byłyby tutaj bardziej przydatne niż przechowywanie znaczników czasu UNIX. Możesz używać funkcji daty/czasu MySQL, aby prawidłowo wybrać wiersze, których szukasz, zamiast tworzyć znacznik czasu UNIX za każdym razem, gdy chcesz wykonać zapytanie o dane na podstawie czasu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. InnoDB zajmuje ponad godzinę, aby zaimportować plik 600MB, MyISAM w kilka minut

  2. Jak usunąć złe znaki, które nie nadają się do kodowania utf8 w MySQL?

  3. Jak naprawić błąd podczas wykonywania zdarzeń zmiany tabeli DDL upuść klucz obcy FKg0mkvgsqn8584qoql6a2rxheq za pomocą instrukcji JDBC

  4. Jak ustawić sql_mode w my.cnf w MySQL 8?

  5. MySQL:indeksować tablice json o zmiennej długości?