Skip to content

Instantly share code, notes, and snippets.

@davit
Last active August 29, 2015 14:10
Show Gist options
  • Save davit/9762c4a32f3a382c3009 to your computer and use it in GitHub Desktop.
Save davit/9762c4a32f3a382c3009 to your computer and use it in GitHub Desktop.
$calendar = array(
9 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(
"start_date" => 9,
"end_date" => 12,
"event_name" => "Cool Event0"
),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
10 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(
"start_date" => 13,
"end_date" => 15,
"event_name" => "Cool Event1"
),
5 => array(),
6 => array(),
7 => array(),
),
11 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
12 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
13 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
14 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
15=> array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
16 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
17 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
6 => array(),
7 => array()
),
19 => array(
0 => array(),
1 => array(),
2 => array(),
3 => array(),
4 => array(),
5 => array(),
6 => array(),
7 => array(),
),
);
<?php
$monday = strtotime('Last Monday', strtotime($passed_date));
?>
<?php $i = 0; ?>
<div class="table-responsive">
<table class="table">
<tr>
<?php foreach (range(0, 7) as $day): ?>
<?php if ($day == 0): ?>
<th class="hours-column"></th>
<?php else: ?>
<th class="days-column">
<?php
echo date('l', $monday);
echo " ";
echo date('d/m', $monday);
$monday = strtotime('tomorrow', $monday);
?>
</th>
<?php endif; ?>
<?php endforeach ?>
</tr>
<?php
//Set up the initial time - as per customer's request
$hour_initial = "09:00";
$hour_counter = 0;
?>
<?php foreach ($calendar as $hour_key => $hour): ?>
<tr>
<?php foreach ($hour as $day_key => $day): ?>
<?php if ($day_key == 0): ?>
<td class="hours-cell-data">
<?php
$effectiveHour = strtotime("+" . $hour_counter . " hours", strtotime($hour_initial));
print date("H:i", $effectiveHour);
$hour_counter++;
?>
</td>
<?php else: ?>
<?php if (!empty($day) && $day != "skip"): ?>
<?php
$duration = $day['end_date'] - $day['start_date'];
if ($duration > 1) {
for ($i = 1; $i < $duration; $i++) {
$calendar[$day['start_date'] + $i][$day_key] = "skip";
}
}
?>
<td class="has-event-true" rowspan="<?php print $duration; ?>">
<?php print $day['event_name']; ?>
</td>
<?php else: ?>
<?php if ($calendar[$hour_key][$day_key] == "skip") {
continue;
} else {
print '<td> No </td>';
}
?>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment