2017-05-22 6 views
0

간단한 작업처럼 보이지만 문제를 해결할 수 없습니다. PHP ($ time + $ time1)로 초 단위로 두 번 계산하고 싶지만 내 결과는 + 1 시간 (+ 1day)입니다. 왜? 34 :PHP 초 단위로 계산하기

$hours="00"; 
$minutes="34"; 
$seconds="13"; 

$hours1="00"; 
$minutes1="35"; 
$seconds1="11"; 

$time=($hours*3600)+($minutes*60)+$seconds; // 2053 seconds 
$time1=($hours1*3600)+($minutes1*60)+$seconds1; // 2111 seconds 

$sum=$time+$time1; // 4164 seconds 

$format=date('H:i:s', $time); // 01:34:13 
$format1=date('H:i:s', $time1); // 01:35:11 
$formatsum=date('H:i:s', $sum); // 02:09:24 

$ 포맷 00이어야 13되지 01 : 34 : 13
I는 일 날짜를 추가하는 경우 ('D에 H : I : S'$ 시간); 결과는 0101: 34 : 13
내 작업입니다 결과 1시 9분 24초하지 02와 0시 34분 13초 + 0시 35분 11초 : 09 : 문제 24
해야합니까 뭔가 시간 형성? 왜 결과에 +1 시간과 +1 시간을 주는가?

+0

[날짜] (http://php.net/manual/en/function.date.php) 함수의 두 번째 매개 변수는 시간 소인뿐만 아니라 초입니다 .. –

+0

@ 모하마드 함 메다니 타임 스탬프의 의미는 무엇입니까? 너 알아? –

+0

타임 스탬프는 1970 년 1 월 1 일 00:00:00 UTC 이후의 초 수인 유닉스 타임 스탬프를 의미합니다. 그러나 나는 여러분의 코드를 테스트하고 두 번째로 작동합니다! 나는 당신의 질문에 답합니다. –

답변

0

변경이에 대한 :

$format=date('H:i:s', $time); // 01:34:13 
$format1=date('H:i:s', $time1); // 01:35:11 
$formatsum=date('H:i:s', $sum); // 02:09:24 

사람 :

$format=gmdate('H:i:s', $time); // 00:34:13 
$format1=gmdate('H:i:s', $time1); // 00:35:11 
$formatsum=gmdate('H:i:s', $sum); // 01:09:24 

gmdate - GMT/UTC 날짜/시간 형식

php doca gmdate

0

기본 시간대가 UTC +1 (으)로 설정되어 있기 때문에 결과는 01:34:13입니다. 대신 당신이 UTC 날짜에 타임 스탬프를 변환 할 경우 date()의 사용 gmdate() 기능 : 또한

$hours = "00"; 
$minutes = "34"; 
$seconds = "13"; 

$hours1 = "00"; 
$minutes1 = "35"; 
$seconds1 = "11"; 

$time = ($hours * 3600) + ($minutes * 60) + $seconds; // 2053 seconds 
$time1 = ($hours1 * 3600) + ($minutes1 * 60) + $seconds1; // 2111 seconds 

$sum = $time + $time1; // 4164 seconds 

$format = gmdate('H:i:s', $time); // 00:34:13 
$format1 = gmdate('H:i:s', $time1); // 00:35:11 
$formatsum = gmdate('H:i:s', $sum); // 01:09:24 

, 나는 당신이 당신의 코드를 달성하기 위해 원하는 것을 잘 모르겠지만, 날짜에 대한 더 나은 도구가/초의 수동 추가보다 시간 조작. PHP 표준 라이브러리의 DateTimeDateInterval 클래스를 확인하십시오.

+0

나는 당신의 대답이 정확하다고 느끼기 때문에 upvoted하지만, 당신은 또한 대답에 따라 OP 갱신 코드를 제공해야합니다. –

1

시간대를 확인해야합니다. 계산 된 시간은 현지 시간대입니다. 예를 들어, + 2GMT를 들어

$time=($hours*3600)+($minutes*60)+$seconds; // 2053 seconds 
$format=date('H:i:s', $time); // 02:34:13 

관련 문제