2007年10月05日

HH:MI形式の時刻文字列の演算

<?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;

?>
posted by 台北猫々 at 23:55| Comment(0) | TrackBack(0) | 技術メモ(PHP)