⏳ นาฬิกาถอยหลัง (10 วินาที)

ใช้ setInterval ใน JavaScript เพื่อสร้างนาฬิกาถอยหลังจาก 10 วินาที
เมื่อถึง 0 จะแสดง “✅ หมดเวลา!”

  • 🎬 แบบทดสอบ/การสอบ: แสดงเวลาจำกัด
  • 🍜 เว็บไซต์ทำอาหาร: นับถอยหลังเวลาต้ม
  • 📊 นาฬิกาสำหรับงานนำเสนอ: เครื่องมือเรียบง่ายสำหรับจัดการเวลา
  • 🎮 เวลาจำกัดในเกม: เหมาะสำหรับเกมเล็ก ๆ ที่สร้างเอง!

🧪 ลองใช้งาน: กด “เริ่ม” เพื่อเริ่มนับถอยหลัง 10 วินาที
เมื่อถึง 0 จะแสดง ✅ “หมดเวลา!”
กด “รีเซ็ต” เพื่อเริ่มใหม่ได้ตลอดเวลา

👇นี่ไง👇
เวลาที่เหลือ: 10 วินาที
<!DOCTYPE html>
<html lang="th">
<head>
  <meta charset="UTF-8">
  <title>ตัวจับเวลานับถอยหลัง</title>
  <style>
    body {
      font-family: sans-serif;
      text-align: center;
      padding: 50px;
    }
    #countdown {
      font-size: 2rem;
      margin: 20px 0;
    }
    button {
      font-size: 1rem;
      padding: 10px 20px;
      margin: 5px;
      cursor: pointer;
    }
  </style>
</head>
<body>

  <h1>⏳ ตัวจับเวลานับถอยหลัง</h1>
  <div id="countdown">เวลาที่เหลือ: 10 วินาที</div>
  <button onclick="startCountdown()">เริ่ม</button>
  <button onclick="resetCountdown()">รีเซ็ต</button>

  <script>
    let timeLeft = 10;
    let timerId = null;

    function startCountdown() {
      if (timerId !== null) return;
      document.getElementById("countdown").textContent = "เวลาที่เหลือ: " + timeLeft + " วินาที";

      timerId = setInterval(() => {
        timeLeft--;
        if (timeLeft > 0) {
          document.getElementById("countdown").textContent = "เวลาที่เหลือ: " + timeLeft + " วินาที";
        } else {
          clearInterval(timerId);
          timerId = null;
          document.getElementById("countdown").textContent = "✅ หมดเวลาแล้ว!";
        }
      }, 1000);
    }

    function resetCountdown() {
      clearInterval(timerId);
      timerId = null;
      timeLeft = 10;
      document.getElementById("countdown").textContent = "เวลาที่เหลือ: 10 วินาที";
    }
  </script>

</body>
</html>
  

⏱ ปรับให้แสดงเวลานับถอยหลังแบบ “นาที:วินาที”

ตัวอย่างนี้ตั้งค่าให้แสดงนับถอยหลังจาก “10 วินาที” แต่หากต้องการแสดงผลในรูปแบบ นาทีและวินาที ก็สามารถทำได้ง่ายๆ ด้วยการคำนวณเพิ่มเล็กน้อย

เช่น หากต้องการให้นับถอยหลังจาก “1 นาที 30 วินาที” ก็ใช้จำนวนวินาทีรวม และแปลงดังนี้:

let totalSeconds = 90;

setInterval(() => {
  totalSeconds--;
  const minutes = Math.floor(totalSeconds / 60);
  const seconds = totalSeconds % 60;
  document.getElementById("countdown").textContent =
    "เวลาที่เหลือ: " + minutes + " นาที " + seconds + " วินาที";
}, 1000);
  • 📏 ตั้งเวลานับถอยหลังได้อิสระ (เช่น 5 นาที, 90 วินาที ฯลฯ)
  • 📱 ใช้ร่วมกับฟอร์มที่รับค่าเวลาได้ง่าย
  • 🧠 รูปแบบ “นาที:วินาที” อ่านเข้าใจง่าย

หัวใจสำคัญของการเขียน Timer คือแยกส่วนของ “ตรรกะการนับเวลา” กับ “การแสดงผล”
เมื่อเข้าใจหลักนี้แล้ว คุณสามารถพัฒนาให้รองรับฟีเจอร์อื่น เช่น หยุดชั่วคราว ดำเนินต่อ หรือแสดงเป็นแถบสถานะได้อีกด้วย