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

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

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

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


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


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











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











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