테스트 사이트 - 개발 중인 베타 버전입니다

소요되는 시간 계산을 하고 싶은데요. 채택완료

메이드 8년 전 조회 4,732

A의 값은 2017:01:06 12:30:00 이고

B의 값은 2017:01:06 12:55:30 이라고 하면

소요된 시간이 25분 30초 인데...

 

이걸 계산해서 25분 30초로 출력하려면 어떻게 해야 할까요? 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
IZSOFT
8년 전

</p><p>$a = strtotime("2017:01:06 12:30:00");</p><p>$b = strtotime("2017:01:06 12:55:30");</p><p>$timestamp = $b - $a;</p><p>$second = $<span style="font-size: 14.6667px;">timestamp % 60;</span></p><p>$minute = intval($<span style="font-size: 14.6667px;">timestamp</span><span style="font-size: 14.6667px;"> / 60);</span></p><p><span style="font-size: 14.6667px;">$hour = </span><span style="font-size: 14.6667px;">intval($</span><span style="font-size: 14.6667px;">timestamp</span><span style="font-size: 14.6667px;"> / 3600);</span></p><p><span style="font-size: 14.6667px;">$day = intval(</span><span style="font-size: 14.6667px;">$</span><span style="font-size: 14.6667px;">timestamp</span><span style="font-size: 14.6667px;"> / 86400);</span></p><p style="font-size: 14.6667px;"> </p><p style="font-size: 14.6667px;">if( $day > 0 ) echo $day ."일 ";</p><p style="font-size: 14.6667px;">if( $hour > 0 ) echo $day ."시간 ";</p><div><p style="font-size: 14.6667px;">if( $minute > 0 ) echo $day ."분 ";</p></div><div><span style="font-size: 11pt;">echo $second ."초";</span>
</div><div>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

s
sinbi
8년 전
망토 님, 천재셈 !!
s
sinbi
8년 전
위 적어주신 코드 결과값이 0분 30초로 출력되는데, 정상인가요?
메이드
8년 전
ㅠㅠ 저도 그렇네요...

댓글을 작성하려면 로그인이 필요합니다.

IZSOFT
8년 전

DateTime 클래스는 php5 이상만 지원해요... 뭐 지금 php5 아래 버전 쓰는곳은 없겠지만... 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

$date1 = new DateTime('2017:01:06 12:30:00');

$date2 = new DateTime('2017:01:06 12:55:30');

$diff = date_diff($date1, $date2);

 

echo '차이나는 시간: '.$diff->y .'년 '.$diff->m .'월 '.$diff->d .'일 '.$diff->h .'시 '.$diff->i .'분 '.$diff->s .'초';

?>

 

===>

 

차이나는 시간: 0년 0월 0일 0시 25분 30초 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

그냥단순하게 

A의 값은 2017:01:06 12:30:00 이고

B의 값은 2017:01:06 12:55:30 이라고 하면

$a = 20170106123000

$b = 20170106125530

 

이렇게 전체를 숫자로해서 빼기해서 이후에 data함수로 뿌려줘도 될것같네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

고양이망토
8년 전
이런 방법의 헛점을 알려드리죠.

$a = 20170106123000
$b = 20170106130030

이렇게 13:00:30 와 12:30:00 의 계산은??
보들이윤
8년 전
연도4자리 월2자리 일2자리 시간2자리 분2자리 초2자리 고정이 되어있으니
뒤에서부터 읽어오면 시간인지 분인지 초인지 일인지 계산이될것같네요
보들이윤
8년 전
아아아 이제 이해했네요 헛점이 아니라
완전한 실패네요
보들이윤
8년 전
$a = "2017:01:06 12:30:00";
$b = "2017:01:06 12:55:30";

$date1 = new DateTime($a);
$date2 = new DateTime($b);

echo $date1->diff($date2)->format("%a 일, %h 시간 %i 분 %s 초<br>");

댓글을 작성하려면 로그인이 필요합니다.

IZSOFT
8년 전

오타...

11번줄에 분을 출력해야하는데 시간 출력하네요. ㅋㅋ

아니 변수에 이름까지 써줬는데 갖다 쓰더라도 이해를 합시다!!...

한번씩 이해하려고 노력했으면 다들 찾았을텐데 ㅠ ㅠ

 

if( $minute > 0 ) echo $minute ."분 "; 

 

10번줄은

if( $hour > 0 ) echo $hour ."분 "; 

 

빠른 코딩을 위해 복사 붙여넣기 신공을 쓰다보면 종종하는 실수...

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

s
sinbi
8년 전
3번 살펴봤는데, 까막눈이라 못 찾았어요.ㅎㅎ
메이드
8년 전
감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인