2014-03-26 1 views
3

현재 시간에 따라 DIV의 크기를 설정할 수있는 방법을 파악하려고합니다. 내가 divs를 사용하여 달력에서 이벤트를 나타냅니다. 내 이벤트에 타임 스탬프를 사용할 수 있습니다. 나는 이걸위한 최선의 접근 방식이 무엇인지 알아낼 수는 없다.시간 간격에 따라 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, 시작은 1pm 패딩은 13px 등입니다. 매시간 패딩은 기본적으로 1px입니다. 그리고 매 시간마다 e_frome_to 사이의 시간을 기준으로 너비를 1px로 설정하십시오. 나는 100 % 확신 할 수는 없지만 어쨌든 논리는 동일 할 것입니다.

실제 솔루션을 요청할 수는 없으므로이 팁에 접근하는 방법에 대한 조언이나 제안을 부탁드립니다. . 답장을 미리 읽어 주셔서 감사합니다.

+0

시간을 비교할 수있는 함수가 있으므로 비교 시간이 숫자를 비교하지 않은 이후에 자신의 함수를 작성할 필요가 없습니다. 당신은 그것이 매끄러운 항해를 해야하는 시간의 정수 차이를 출력 할 수 있습니다. 행운을 빕니다! EDIT : http://stackoverflow.com/a/6158762/706798 – Andrey

+0

도움이 될 수 있으며 매시간 1px 씩 증가시켜야 어떻게 할 수 있습니까? for 루프를 사용 하시겠습니까? –

+0

나는 그 질문을 이해하고 있는지 확신 할 수 없다. 패딩을 결과에 설정하면 (시차는 시간의 정수로 나타남) 작동하지 않습니까? – Andrey

답변

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); 

당신은 $의 maxWidth 0에서 규모를 설정할 수 있습니다. 이 경우 폭은 13px입니다.

관련 문제