2011-03-28 5 views
4

지금 몇 시간 동안 답변을 찾고 있었지만 찾을 수 없습니다.PHP에서 시간을 빼기

간단한 script을 쓰고 있습니다. 사용자가 작업 시작 및 종료 시간을 설정합니다. 예를 들어, 누군가 8 시부 터 16 시까 지 일하고 있습니다. 이 사람의 근무 시간을 확인하려면 어떻게합니까?

내가 strtotime();으로하지만 성공하지 않고 실험을했다 ...

답변

21

약간 더 좋은는 다음과 같습니다 : 당신에게 시간의 차이를 줄 것이다

 

$a = new DateTime('08:00'); 
$b = new DateTime('16:00'); 
$interval = $a->diff($b); 

echo $interval->format("%H"); 

.

+0

감사합니다. 위대한 작품! – PsychoX

+0

PHP> 5.3 만 ... – jondavidjohn

+0

전체 간격을 초로 변환 할 수 있는지 궁금합니다. -> format ('% S')은 총 계산 된 초가 아니라 간격 출력의 초 부분만을 알려주었습니다. –

8

유효한 날짜 문자열을 얻을 경우, 당신은이를 사용할 수 있습니다 : 이것은 당신에게 사람이 작동 된 시간을 줄 것이다

$workingHours = (strtotime($end) - strtotime($start))/3600; 

.

+0

감사합니다. :) 그리고 어떻게 hh : mm 형식으로 변환 할 수 있습니까? – PsychoX

+0

3600 대신 60으로 나누어 60 분으로 나누고 60 분의 1로 나누어서 전체 시간을 얻고 나머지 분을 % 60 분으로 가져올 수 있습니다. –

+1

날짜 ('H : i', $ workingHours). strtotime은 날짜의 유닉스 타임 스탬프를 되돌려주기 때문에 여기서는 strtottime을 추천하지 않을 것이다. – superbly