โค้ดตัวอย่างต่อไปนี้จะมีสองส่วน ส่วนแรกจะเป็นฟังก์ชั่น สำหรับทำการบวกเวลา
โดยรุปแบบเวลาของเราจะอยู่ในรุปแบบ 24 ชม. คือ 00:00:00
ข้อมูลเป็นประเภท array เช่น
$date=array(
"17:21:43",
"98:41:59"
);
หรือกรณีดึงรายการจากฐานข้อมูล
<?php
$time_arr=array();
$q="
SELECT timeData FROM tbl_time
";
$qr=mysql_query($q);
while($rs=mysql_fetch_array($qr)){
$time_arr[]=$rs['timeData'];
}
?>
ฟังก์ชั่น php
function sumTime($date){
$ss_num=0;
if(count($date)>0){
foreach($date as $v_date){
$ar_time=explode(":",$v_date);
$ss_num+=$ar_time[2];
$ss_num+=($ar_time[1]*60);
$ss_num+=($ar_time[0]*60*60);
}
}
$time_diff_h=floor($ss_num/3600); // จำนวนชั่วโมงที่ต่างกัน
$time_diff_m=floor(($ss_num%3600)/60); // จำวนวนนาทีที่ต่างกัน
$time_diff_s=($ss_num%3600)%60; // จำนวนวินาทีที่ต่างกัน
// กรณีต้องการกำหนดเลข 0 นำหน้าเวลา
$time_diff_h=str_pad($time_diff_h,2,"0", STR_PAD_LEFT);
$time_diff_m=str_pad($time_diff_m,2,"0", STR_PAD_LEFT);
$time_diff_s=str_pad($time_diff_s,2,"0", STR_PAD_LEFT);
// return $time_diff_h." ชั่วโมง ".$time_diff_m." นาที ".$time_diff_s." วินาที";
return $time_diff_h.":".$time_diff_m.":".$time_diff_s;
}
ตัวอย่างการใช้งานแบบเต็ม
<?php
function sumTime($date){
$ss_num=0;
if(count($date)>0){
foreach($date as $v_date){
$ar_time=explode(":",$v_date);
$ss_num+=$ar_time[2];
$ss_num+=($ar_time[1]*60);
$ss_num+=($ar_time[0]*60*60);
}
}
$time_diff_h=floor($ss_num/3600); // จำนวนชั่วโมงที่ต่างกัน
$time_diff_m=floor(($ss_num%3600)/60); // จำวนวนนาทีที่ต่างกัน
$time_diff_s=($ss_num%3600)%60; // จำนวนวินาทีที่ต่างกัน
// กรณีต้องการกำหนดเลข 0 นำหน้าเวลา
$time_diff_h=str_pad($time_diff_h,2,"0", STR_PAD_LEFT);
$time_diff_m=str_pad($time_diff_m,2,"0", STR_PAD_LEFT);
$time_diff_s=str_pad($time_diff_s,2,"0", STR_PAD_LEFT);
// return $time_diff_h." ชั่วโมง ".$time_diff_m." นาที ".$time_diff_s." วินาที";
return $time_diff_h.":".$time_diff_m.":".$time_diff_s;
}
$time_arr=array();
$q="
SELECT timeData FROM tbl_time
";
$qr=mysql_query($q);
while($rs=mysql_fetch_array($qr)){
$time_arr[]=$rs['timeData'];
}
echo sumTime($time_arr);
?>
แบบที่สอง แบบรวมค่าฟิลด์เวลา time ในฐานข้อมูล
<?php
$timeSum=@mysql_result(@mysql_query("
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(timeData))) FROM tbl_time
"),0,0);
?>
โดยผลัพธ์ที่ได้จะอยู่ในรูปแบบ time
เช่น 26:50:42