sql >> Databáze >  >> RDS >> Mysql

Jak získat posledních 7 dní pomocí PHP

Nejrobustnějším způsobem, jak toho dosáhnout, je použít DateTime místo 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

Nyní si můžete vytvořit pole dat takto:

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

Toto inicializuje vaše pole na něco jako:

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

Nyní máte pole se všemi možnými daty za posledních 7 dní a můžete to udělat ve smyčce:

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

Nemusíte kontrolovat, zda klíč pole existuje, protože je zaručeno, že existuje.

Nakonec bych doporučil podívat se do DATETIME nebo jiné související typy sloupců data/času, protože by zde byly užitečnější než ukládání časových razítek UNIX. Můžete použít funkce data/času MySQL ke správnému výběru řádků, které hledáte, místo toho, abyste museli vytvářet UNIX časové razítko pokaždé, když se chcete dotazovat na data na základě času.




  1. MySQL Workbench ignoruje cizí klíče

  2. Jak mohu získat seznam databází MySQL v PHP pomocí PDO?

  3. Typy textových, ntextových a obrazových dat> nelze porovnávat ani třídit, s výjimkou použití operátoru IS NULL nebo LIKE>

  4. Neznámá chyba sloupce v úplné syntaxi spojení