เขียนโปรแกรม JavaScript เปรียบเทียบเวลา หาความต่างของเวลา Day, Hours, Minute, Seconds

โดย CyberMAN

"Get time difference between two dates"

ถ้าค้นหาด้วยคีย์เวิร์ดนี้ เราจะเจอวิธีการเขียนโปรแกรมเปรียบเทียบวันเวลาที่หลากหลาย ให้เลือกใช้กันตามที่ถนัดได้เลยครับ




จากบทความที่แล้วผมได้แนะนำเกี่ยวกับการเขียนโปรแกรม "PHP กับการเลื่อนกำหนดเวลาครั้งถัดไป เมื่อบันทึกเลยกำหนดในครั้งก่อน" ซึ่งเป็นการทำงานในเวอร์ชั่นภาษา PHP จากนั้นก็มีแฟนเพจ "PHP สำหรับผู้เริ่มต้น" ได้สอบถามเข้ามาอีกว่าถ้าต้องการเขียนโปรแกรมเปรียบเทียบเวลาโดยใช้ JavaScript ล่ะ จะต้องเขียนแบบไหน จึงเป็นที่มาของบทความแนะนำการ "เขียนโปรแกรม JavaScript เปรียบเทียบเวลา หาความต่างของเวลา Day, Hours, Minute, Seconds" นี้ครับ

สำหรับซอร์สโค้ดที่ใช้ มีดังต่อไปนี้ครับ




[ JavaScript Code ]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>การหาผลต่างของเวลาด้วย JavaScript</title>
</head>
<body>

<h1>การหาผลต่างของเวลาด้วย JavaScript</h1>
<div><input id="text1" /></div>
<div><input id="text2" /></div>
<div><input id="total" /></div>
<div><input type="button" value="Process" onclick="CheckTime()" /></div>

<script>

    function CheckTime(){
        //Get datetime from input
        datetime1 = document.getElementById('text1').value;
        datetime2 = document.getElementById('text2').value;
      
        //Set date time format
        var startDate = new Date(datetime1);
        var endDate   = new Date(datetime2);
        var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
      
        //Calculate time
        var days = Math.floor(seconds / (3600*24));
        var hrs_d   = Math.floor((seconds - (days * (3600*24))) / 3600);
        var hrs   = Math.floor(seconds / 3600);
        var mnts = Math.floor((seconds - (hrs * 3600)) / 60);
        var secs = seconds - (hrs * 3600) - (mnts * 60);
      
        //Add 0 if one digit
        if(hrs_d<10) hrs_d = "0" + hrs_d;
        if(mnts<10) mnts = "0" + mnts;
        if(secs<10) secs = "0" + secs;
      
        document.getElementById('total').value = days + ' ' + hrs_d + ':' + mnts + ':' + secs;
    }

</script>
</body>
</html>


 ถ้านับโค้ดด้านบนนี้ไปลองรันดู เมื่อเราป้อนวันเวลาในช่องที่ 1 และ ช่องที่ 2 จากนั้นกดปุ่ม "Process" ก็จะปรากฏผลลัพธ์ค่าวันเวลาที่ต่างกันในช่องที่ 3


ซึ่งจากโค้ดนี้เราสามารถนำค่าเวลาที่หน่วยเป็นวินาทีในตัวแปร seconds ไปเพิ่มลดเวลา หรือชดเชยเวลาให้กับกำหนดการครั้งต่อไปได้ ซึ่งผู้เขียนจะแนะนำวิธีการในโอกาสต่อไป


สนับสนุนค่ากาแฟผู้เขียนได้ที่

( Mobile Banking / Application )

สนับสนุนค่ากาแฟผู้เขียนได้ที่

PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม เขียนโปรแกรมง่ายและสะดวกขึ้น
สนใจสั่งซื้อราคาสุดคุ้ม >> http://fastcoding.phpcodemania.com/

:: อ้างอิง :: 

Get time difference between two dates in seconds
https://stackoverflow.com/questions/13894632/get-time-difference-between-two-dates-in-seconds
 
Convert to days,hours,minutes,seconds
https://stackoverflow.com/questions/36098913/convert-to-days-hours-minutes-seconds 

change time format to 24 hours in javascript
https://stackoverflow.com/questions/22347521/change-time-format-to-24-hours-in-javascript