Si no estoy familiarizado con datatable.net, solo le mostraré una opción para obtener sus resultados con una llamada a la base de datos. Haga ajustes cuando sea necesario.
$rs1 = $db->prepare('SELECT * FROM activity;');
$rs1->execute();
$rows = $rs1->fetchAll();
$daterange = new DatePeriod($startDate, $interval ,$endDate);
$activities = array();
if (count($rows) > 0)
{
foreach ($rows as $row)
{
$activities[$row['timestamp_day']][] = $row['name'];
}
foreach($daterange as $date)
{
$formattedData = $data //format your date to timestamp here
if (!array_key_exists($formattedDate, $activities))
{
$activities[$formattedDate] = array();
}
}
}
Te da una matriz con el siguiente formato:
$activities = array(
[1394319600] => array('Meeting', 'Car repair')
[1394406000] => array('Travel')
[1394492400] => array('Work')
[1394578800] => array('Vacation')
)