我目前正在试图弄清楚如何根据持续时间设置DIV的尺寸。我使用div来表示日历上的事件。并为我的活动提供从时间戳到时间戳。我真的无法弄清楚这应该是最好的方法。
让我举一个例子说明我要做的事情。
<td style="position:relative;">
<!-- Inspecting every event -->
<?php foreach ($room['events'] as $event): ?>
<!-- generate event divs -->
<?php if(date('j', strtotime($event['e_from'])) == $x+1): ?>
<div class="event"
style="
width: 100px;
margin-left: 30px;
">
<!-- pupulate divs with content -->
blah blah blah
</div>
<?php endif; ?>
<?php endforeach; ?>
</td>
此代码有效。现在我需要根据持续时间替换宽度和填充。我可以使用$event['e_from']
和$event['e_to']
访问时间戳。字符串看起来像2014-03-05 06:28:00
。
我想根据事件中的时间设置填充。例如,如果它在午夜开始填充为0,如果它从下午1点开始填充是13px等,基本上每小时填充1px。然后根据e_from
和e_to
之间的时间设置宽度,每小时也设置1px。我在规模上并不是百分之百确定,但无论如何逻辑都是一样的..
我想我不能要求实际解决方案,因此我将非常感谢有关如何处理此任务的任何提示或建议。感谢大家提前阅读回复。
答案 0 :(得分:1)
你可以这样做:
$maxWidth = 200; // px
$eventStart = strtotime('2014-03-01 20:54:00');
$eventEnd = strtotime('2014-03-01 22:31:59');
$eventLength = $eventEnd - $eventStart;
$maxLength = 86400;
$ratio = $eventLength / $maxLength;
$width = round($ratio * $maxWidth);
您可以将比例从0设置为$ maxWidth。在这种情况下,宽度将是13px。