ฟังก์ชั่นการบวกเวลา และการบวกฟิลด์เวลาในฐานข้อมูล อย่างง่าย

เขียนเมื่อ 7 ปีก่อน โดย Ninenik Narkdee
php ฐานข้อมูล บวกเวลา

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ php ฐานข้อมูล บวกเวลา



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


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











URL สำหรับอ้างอิง











เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ