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

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

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

ดูแล้ว 8,249 ครั้ง


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





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







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