根据持续时间设置div宽度和填充

时间:2014-03-26 22:11:03

标签: php html css codeigniter

我目前正在试图弄清楚如何根据持续时间设置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_frome_to之间的时间设置宽度,每小时也设置1px。我在规模上并不是百分之百确定,但无论如何逻辑都是一样的..

我想我不能要求实际解决方案,因此我将非常感谢有关如何处理此任务的任何提示或建议。感谢大家提前阅读回复。

1 个答案:

答案 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。