Skip to content

Instantly share code, notes, and snippets.

@dmgig
Created April 20, 2016 18:50
Show Gist options
  • Save dmgig/cfbd0ba59e2aff1403efd813920b5942 to your computer and use it in GitHub Desktop.
Save dmgig/cfbd0ba59e2aff1403efd813920b5942 to your computer and use it in GitHub Desktop.
Timeline Table
<?php
require 'common.php';
// base dateframes
$dateframe = new DateFrame('1960-01-01', '1974-04-01');
$dateframes = $dateframe->asMonthIntervals(1);
$dateframes = array_reverse($dateframes);
function createEvents(){
// events
$events = array();
$event = new stdClass;
$event->title = "test event 1";
$event->dateframe = new DateFrame("1961-01-03", "1961-01-03");
$event->added = false;
$event->color = 'violet';
$events[] = $event;
$event = new stdClass;
$event->title = "test event 2";
$event->dateframe = new DateFrame("1960-01-03", "1972-03-03");
$event->added = false;
$event->color = 'pink';
$events[] = $event;
$event = new stdClass;
$event->title = "test event 3";
$event->dateframe = new DateFrame("1970-01-03", "1971-01-03");
$event->added = false;
$event->color = 'green';
$events[] = $event;
$event = new stdClass;
$event->title = "test event 4";
$event->dateframe = new DateFrame("1971-01-03", "1973-01-03");
$event->added = false;
$event->color = 'blue';
$events[] = $event;
$event = new stdClass;
$event->title = "test event 5";
$event->dateframe = new DateFrame("1961-09-11", "1968-09-11");
$event->added = false;
$event->color = 'red';
$events[] = $event;
$event = new stdClass;
$event->title = "test event 6";
$event->dateframe = new DateFrame("1972-01-03", "1973-01-03");
$event->added = false;
$event->color = 'yellow';
$events[] = $event;
return $events;
}
echo 'rows: ' . count($dateframes) . "<hr />";
$events = createEvents();
echo '<table cellpadding="2" cellspacing="0" border="1" bordercolor="#CCC">';
echo '<tr>';
echo '<td>date</td>';
foreach($events as $k => $event){
echo '<td>'.($k+1).'</td>';
}
echo '</tr>';
$cm = null;
foreach($dateframes as $dateframe){
echo '<tr>';
echo '<td>';
if(date('m', strtotime($dateframe->start)) != $cm){
echo '<b>' . date('m/d/Y', strtotime($dateframe->start)) . '</b>';
}
echo '</td>';
foreach($events as $k => $event){
if($dateframe->overlaps($event->dateframe)){
echo '<td width="10" height="10" style="background-color:'.$event->color.';"></td>';
}else{
echo '<td></td>';
}
}
echo '</tr>';
$cm = date('m', strtotime($dateframe->start));
}
echo '</table>';
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment