24:00:00以上の時間値(その差)までの時間を見つける必要があります。24時間以上の2時間間の時間差を見つける方法
たとえば、42:00:00
と37:30:00
の違いを計算するにはどうすればよいですか? strtotime
、strptotime
、など彼らは23時59分59秒を超えることができませんので、無用であるを使用して
....
24:00:00以上の時間値(その差)までの時間を見つける必要があります。24時間以上の2時間間の時間差を見つける方法
たとえば、42:00:00
と37:30:00
の違いを計算するにはどうすればよいですか? strtotime
、strptotime
、など彼らは23時59分59秒を超えることができませんので、無用であるを使用して
....
$a_split = explode(":", "42:00:00");
$b_split = explode(":", "37:30:00");
$a_stamp = mktime($a_split[0], $a_split[1], $a_split[2]);
$b_stamp = mktime($b_split[0], $b_split[1], $b_split[2]);
if($a_stamp > $b_stamp)
{
$diff = $a_stamp - $b_stamp;
}else{
$diff = $b_stamp - $a_stamp;
}
echo "difference in time (seconds): " . $diff;
必要に応じてdate()を使用して秒をHH:MM:SSに変換します。
日付/時刻の変数と関数を使用すると、時間を記憶していないとして、ここでは適切ではありませんが、代わりに時間、分、秒の時間帯です。
各時間帯を整数コンポーネントに分割し、1つの単位(たとえば秒)に変換し、それらを互いに引き算し、適合する出力時間スパンを再構築することが最適なソリューションですあなたのアプリケーションで。
どれexempleを、それが動作するかどうかを確認するために? – Warface
私はこれをテストしたhaventは、これはあなたがやりたいことがあります
function timediff($time1, $time2) {
list($h,$m,$s) = explode(":",$time1);
$t1 = $h * 3600 + $m * 60 + $s;
list($h2,$m2,$s2) = explode(":",$time2);
$seconds = ($h2 * 3600 + $m2 * 60 + $s2) - $t1;
return sprintf("%02d:%02d:%02d",floor($seconds/3600),floor($seconds/60)%60,$seconds % 60);
}
$ b_stampは 'mktime'に間違ったパラメータを使用しています。セミコロンがありません。それ以外の場合は、 'mktime'が余分な時間を適切なフィールドにロールアウトするためです。 –
魅力のように働く。 – Warface