โค้ดตัวอย่างต่อไปนี้จะมีสองส่วน ส่วนแรกจะเป็นฟังก์ชั่น สำหรับทำการบวกเวลา
โดยรุปแบบเวลาของเราจะอยู่ในรุปแบบ 24 ชม. คือ 00:00:00
ข้อมูลเป็นประเภท array เช่น
1 2 3 4 | $date = array ( "17:21:43" , "98:41:59" ); |
หรือกรณีดึงรายการจากฐานข้อมูล
1 2 3 4 5 6 7 8 9 10 | <?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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 ; } |
ตัวอย่างการใช้งานแบบเต็ม
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?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 ในฐานข้อมูล
1 2 3 4 5 | <?php $timeSum =@mysql_result(@mysql_query(" SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(timeData))) FROM tbl_time "),0,0); ?> |
โดยผลัพธ์ที่ได้จะอยู่ในรูปแบบ time
1 | เช่น 26:50:42 |