โค้ดตัวอย่างต่อไปนี้จะมีสองส่วน ส่วนแรกจะเป็นฟังก์ชั่น สำหรับทำการบวกเวลา
โดยรุปแบบเวลาของเราจะอยู่ในรุปแบบ 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