2016-12-12 4 views
0

% RH : i : s 형식 (예 : +00 : 00 : 00 또는 -00 : 00 : 00)으로 재생 시간을 보유하고 음수와 함께 더하거나 빼기를 원합니다. 30 : 15 - = -01음수 및 양수 시간 계산

1/(10시 0분 0초) 9시 30분 15초 +() 24시간

있다.

2/22시 0분 0초 + 3시 0분 0초 = 25:00:00 (안 1시 0분 0초 + 일일)

어떤 생각? 미리 감사드립니다!

는 편집 :

마지막으로 그것을했다. 그것을하는 진짜 올바른 방법인지 모르지만 그것은 꽤 잘 작동합니다. 포럼에서 발견 된 다른 기능의 도움으로 발견했습니다.

function calc_hours($hour1,$hour2){ 

    $si1 = $hour1[0]; $si2 = $hour2[0]; 

    $hour1 = substr($hour1,1,8); 
    $hour2 = substr($hour2,1,8);   

    $secondes1=intval($si1.heure_to_secondes($hour1)); 
    $secondes2=intval($si2.heure_to_secondes($hour2)); 

    $somme=intval($secondes1+$secondes2); 

    //transfo en h:i:s 
    $s= ($somme % 60); 
    $m1= (($somme-$s)/60); 
    $m= ($m1 % 60); 
    $h= (($m1-$m)/60); 

    if($somme > 0) { $sif = '+'; } 
    $resultat=sprintf("%02d", $h).":".sprintf("%02d", abs($m)).":".sprintf("%02d", abs($s)).""; 
    return $sif.$resultat; 
} 

function heure_to_secondes($heure){ 
    $array_heure=explode(":",$heure); 
    $secondes=3600*$array_heure[0]+60*$array_heure[1]+$array_heure[2]; 
    return $secondes; 
} 

다음과 같이 호출하십시오. calc_hours ('+ 27:45:16', '- 02:35:12');

+0

예,'date()'또는'datetime' 클래스를 사용하지 마십시오. – Daan

+0

더 자세한 정보가 필요하십니까? date() 또는 datetime 클래스를 사용할 수없는 경우 무엇을 사용합니까? – hellodracon

+0

직접 수식을 만들어야합니다. 날짜 시간은 항상 24 시간으로 계산됩니다. – Daan

답변

0

마지막으로 수행했습니다. 그것을하는 진짜 올바른 방법인지 모르지만 그것은 꽤 잘 작동합니다. 포럼에서 발견 된 다른 기능의 도움으로 발견했습니다.

function calc_hours($hour1,$hour2){ 

    $si1 = $hour1[0]; $si2 = $hour2[0]; 

    $hour1 = substr($hour1,1,8); 
    $hour2 = substr($hour2,1,8);   

    $secondes1=intval($si1.heure_to_secondes($hour1)); 
    $secondes2=intval($si2.heure_to_secondes($hour2)); 

    $somme=intval($secondes1+$secondes2); 

    //transfo en h:i:s 
    $s= ($somme % 60); 
    $m1= (($somme-$s)/60); 
    $m= ($m1 % 60); 
    $h= (($m1-$m)/60); 

    if($somme > 0) { $sif = '+'; } 
    $resultat=sprintf("%02d", $h).":".sprintf("%02d", abs($m)).":".sprintf("%02d", abs($s)).""; 
    return $sif.$resultat; 
} 

function heure_to_secondes($heure){ 
    $array_heure=explode(":",$heure); 
    $secondes=3600*$array_heure[0]+60*$array_heure[1]+$array_heure[2]; 
    return $secondes; 
} 

다음과 같이 호출하십시오. calc_hours ('+ 27:45:16', '- 02:35:12');

관련 문제