logo

시간 차 계산

Server Side March 04, 2019

현재시간을 기준으로 서비스의 제공 유무를 판단할 때 구해야 하는 시간 차를 계산하는 코드입니다.

 

timestamp값을 이용해 시간차를 반환할 수 있도록 PHP의 intval 메소드를 활용해 만들어봅시다.

반환된 timestamp 값의 크기는 흔히 서비스에서 이용해야되는 초/분/시간/일 단위가 아니므로 필요에 따라 원하는 시간 규격으로 바꿔줘야 해요.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
/**
 * 인수로 입력된 날짜와 현재날짜 사이의 시간차를 계산해 기준시간이내면 TRUE를, 아니면 FALSE를 반환합니다.
 * 두 번째 인수로 시간단위의 기준시간을 입력할 수 있습니다. 기본값은 1주일(=168시간) 입니다.
 * @param $date
 * @param int $limit
 * @return bool
 */
function is_in_time($date$limit = 168) {
  $ticktock = intval((strtotime('now'- strtotime($date)) / 3600);
  if ($ticktock < $limit)
    $inWeek = TRUE;
  else
    $inWeek = FALSE;
 
  return $inWeek;
}
cs

 

$ticktock이 내가 얻는 시간차 입니다. intval 파라미터 연산식 중 가장 마지막 나눠지는 숫자가 다룰 시간 규격 단위를 계산하는 기준입니다.

위의 메소드에서는 전 '시간'단위로 데이터를 구분하기위해서 3600으로 나누었습니다.

'분'단위면 60으로 나누고 '초'단위면 굳이 나눌필요가 없겟지요!

 

반환되는 값이나 후처리 과정은 자신이 필요한대로 로직 수정을 진행하면 될 것 같아요. 저같은 경우에는 일정 시간을 벗어나는 시간 차일 경우 논리값 반환형태로 시간 차를 이용했습니다.