PHP

2013-05-06 2 views
0

의 총 소요 시간을 계산한다PHP

마일 시간 당

: 0시 11분 40초

총 마일 : 177

총 시간 : 34 : 25:00

다른 방법을 시도했지만 완료하지 못했습니다.

$distance = "177"; 
$parsetime = strtotime("00:11:40"); 

$otfrom_string = time(); 
$needed = $parstime*$distance; 
$otto_string = $otfrom_string+$needed; 

echo date("H:i:s",$otfrom_string)."<br />"; 
echo date("H:i:s",$otto_string)."<br />"; 

$start = $otfrom_string; 
$end = $otto_string; 
$elapsed = $end - $start; 
echo date("H:i:s", $elapsed); 
+1

가능한 중복 사용하는 문자열을 변환하려면 [어떻게 날짜 시간 경과 시간을 찾기 위해 PHP를?] (http://stackoverflow.com/questions/2915864/php-how-to-find-the-time-since-a-date-time) –

+0

출력은 어떻게 되나요? 또는 출력이 없으면 어떤 오류가 발생합니까? 왜 이것이 사실이라고 생각하니? – sgroves

+0

다음 출력이 표시됩니다. 2013-05-06 14:37:17 1927-05-06 20:30:37 15:02:04 – WillieBoy

답변

0
$time = '00:11:40'; 
$distance = 177; 

list($h,$m,$s) = explode(':',$time); 

$nbSec = $h * 3600 + $m * 60 + $s; 
$totalDuration = $nbSec * $distance; 

echo nbSecToString($totalDuration);//print 34:00:25 


function nbSecToString($nbSec) { 

    $tmp = $nbSec % 3600; 
    $h = ($nbSec - $tmp)/3600; 
    $s = $tmp % 60; 
    $m = ($tmp - $s)/60; 

    $h = str_pad($h, 2, "0", STR_PAD_LEFT); 
    $m = str_pad($m, 2, "0", STR_PAD_LEFT); 
    $s = str_pad($s, 2, "0", STR_PAD_LEFT); 

    return "$h:$m:$s"; 
} 

Demo

+0

고마워요! 이것은 문제를 해결했습니다! – WillieBoy

0

strtotime 성공시 타임 스탬프를 반환하고 그렇지 않으면 false를 반환합니다. 나는 당신이 길이를 계산하는 방법이 아닌 177을위한 타임 스탬프를 곱하고 있다고 생각한다.

문자열을 초 단위로 변환 한 다음 177을 곱한 다음 아래 코드를 현재 시간에 더하고 "도착"시간을 얻으십시오.

는 초의

$timestr = '00:30:00'; 
    $parts = explode(':', $timestr); 
    $seconds = ($parts[0] * 60 * 60) + ($parts[1] * 60) + $parts[2];