<?php
$val1 = "09:30";
$val2 = "22:00";
$vals1 = explode(":", $val1);
$vals2 = explode(":", $val2);
//グリニッジとの時差(9時間)を補正して、1970年1月1日 00:00:00からの秒数に変換します。
$time1 = mktime( $vals1[0], $vals1[1], 0, 0, 0, 0 ) + 60*60*9;
$time2 = mktime( $vals2[0], $vals2[1], 0, 0, 0, 0 ) + 60*60*9;
//時間の加算処理
$time3 = $time2 + $time1;
$time = date("H:i", strtotime("-9 hour", $time3));
echo "$val2 + $val1 = ".$time;
//時間の減算処理
$time3 = $time2 - $time1;
$time = date("H:i", strtotime("-9 hour", $time3));
echo "$val2 - $val1 = ".$time;
?>
//処理的には上と同じ、date_default_timezone_setでデフォルトのタイムゾーンを
//グリニッジ(GMT)にした場合です。プログラムで時間を補正する必要がないです。
//ただし、スクリプト内のタイムゾーンが日本でなくなるので注意。
<?php
$val1 = "09:30";
$val2 = "22:00";
$vals1 = explode(":", $val1);
$vals2 = explode(":", $val2);
date_default_timezone_set("GMT");
$time1 = mktime( $vals1[0], $vals1[1], 0, 0, 0, 0 );
$time2 = mktime( $vals2[0], $vals2[1], 0, 0, 0, 0 );
$time3 = $time2 + $time1;
$time = date("H:i", $time3);
echo "$val2 + $val1 = ".$time;
$time3 = $time2 - $time1;
$time = date("H:i", $time3);
echo "$val2 - $val1 = ".$time;
?>