Membuat Countdown Clock Dengan JavaScript - CRUDPRO

Membuat Countdown Clock Dengan JavaScript

Membuat Countdown Clock Dengan JavaScript

Dalam tutorial ini, kita akan belajar bagaimana membuat Countdown Clock dinamis menggunakan HTML, CSS, dan JavaScript. Countdown Clock adalah cara yang fantastis untuk menghidupkan semangat dan menciptakan antisipasi menghadapi acara atau batas waktu yang akan datang.

Berikut ini adalah pratinjau dari apa yang sedang kami buat:

Langkah 1: Struktur HTML

Untuk memulai, mari kita siapkan struktur HTML dasar untuk Countdown Clock kita. Kami akan menggunakan empat elemen persegi untuk mewakili label hari, jam, menit, dan detik.


<body>
  <h1>Countdown to Event</h1>
  <div class="countdown">
    <div class="square">
      <span id="days">00</span>
      <span class="label">Days</span>
    </div>
    <div class="square">
      <span id="hours">00</span>
      <span class="label">Hours</span>
    </div>
    <div class="square">
      <span id="minutes">00</span>
      <span class="label">Minutes</span>
    </div>
    <div class="square">
      <span id="seconds">00</span>
      <span class="label">Seconds</span>
    </div>
  </div>
</body>

Langkah 2: Gaya CSS

Selanjutnya, mari terapkan beberapa CSS dasar untuk mengatur gaya Countdown Clock kita.


    /* styles.css */
    body {
      font-family: 'Staatliches', cursive;
      margin: 0;
      padding: 20px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    
    h1 {
      text-align: center;
      font-size: 45px;
      margin: 0;
      padding: 0;
      color: #C5283D;
    }
    
    .countdown {
      display: flex;
      justify-content: center;
      margin-top: 50px;
    }
    
    .square {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin: 0 10px;
    }
    
    .square span {
      font-size: 48px;
    }
    
    .label {
      margin-top: 10px;
      text-align: center;
    }
    
    span.label{
      font-size: 30px;
    }

Langkah 3: Fungsi JavaScript

Sekarang, mari tambahkan kode JavaScript untuk membuat Countdown Clock kita menjadi dinamis. Kami akan menghitung sisa waktu berdasarkan tanggal saat ini dan tanggal acara target. Kemudian, kami akan memperbarui nilai waktu setiap detik.


    function countdown() {
        // code goes here
      }

Kami mendefinisikan fungsi countdown yang menghitung sisa waktu dalam hari, jam, menit, dan detik berdasarkan perbedaan antara tanggal acara target dan tanggal saat ini.


    function countdown() {
        const targetDate = new Date("2023-12-31"); // Set your target event date here
        const now = new Date();
      
        const difference = targetDate - now;
      }

Kami menggunakan objek Date untuk membuat instance untuk tanggal acara target (targetDate) dan tanggal saat ini (now). Kemudian kami menghitung perbedaan waktu dengan mengurangkan tanggal saat ini dari tanggal acara target, yang memberi kami perbedaan dalam milidetik.


    function countdown() {
        const targetDate = new Date("2023-12-31"); // Set your target event date here
        const now = new Date();
      
        const difference = targetDate - now;
      
        let days = Math.floor(difference / (1000 * 60 * 60 * 24));
        let hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        let minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
        let seconds = Math.floor((difference % (1000 * 60)) / 1000);
      }

Kami melakukan beberapa perhitungan matematis untuk mengubah milidetik menjadi hari, jam, menit, dan detik.


    function countdown() {
        const targetDate = new Date("2023-12-31"); // Set your target event date here
        const now = new Date();
      
        const difference = targetDate - now;
      
        let days = Math.floor(difference / (1000 * 60 * 60 * 24));
        let hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        let minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
        let seconds = Math.floor((difference % (1000 * 60)) / 1000);
      
        days = days.toString().padStart(2, "0");
        hours = hours.toString().padStart(2, "0");
        minutes = minutes.toString().padStart(2, "0");
        seconds = seconds.toString().padStart(2, "0");
      }
    

Kami menggunakan toString().padStart(2, "0") untuk memastikan bahwa setiap nilai waktu selalu ditampilkan sebagai angka dua digit, meskipun kurang dari 10.


        function countdown() {
            const targetDate = new Date("2023-12-31"); // Set your target event date here
            const now = new Date();
          
            const difference = targetDate - now;
          
            let days = Math.floor(difference / (1000 * 60 * 60 * 24));
            let hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            let minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
            let seconds = Math.floor((difference % (1000 * 60)) / 1000);
          
            days = days.toString().padStart(2, "0");
            hours = hours.toString().padStart(2, "0");
            minutes = minutes.toString().padStart(2, "0");
            seconds = seconds.toString().padStart(2, "0");
          
            document.getElementById("days").textContent = days;
            document.getElementById("hours").textContent = hours;
            document.getElementById("minutes").textContent = minutes;
            document.getElementById("seconds").textContent = seconds;
          }
    

Kami memperbarui elemen terkait dalam HTML menggunakan document.getElementById dan menyetel konten teksnya ke nilai waktu yang dihitung.


        setInterval(countdown, 1000);
    

Terakhir, kami memanggil fungsi countdown setiap detik menggunakan setInterval untuk terus memperbarui hitungan mundur secara real-time.


        function countdown() {
            const targetDate = new Date("2023-12-31"); // Set your target event date here
            const now = new Date();
          
            const difference = targetDate - now;
          
            let days = Math.floor(difference / (1000 * 60 * 60 * 24));
            let hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            let minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
            let seconds = Math.floor((difference % (1000 * 60)) / 1000);
          
            days = days.toString().padStart(2, "0");
            hours = hours.toString().padStart(2, "0");
            minutes = minutes.toString().padStart(2, "0");
            seconds = seconds.toString().padStart(2, "0");
          
            document.getElementById("days").textContent = days;
            document.getElementById("hours").textContent = hours;
            document.getElementById("minutes").textContent = minutes;
            document.getElementById("seconds").textContent = seconds;
          }
          
          setInterval(countdown, 1000);
    

Langkah 4: Kesimpulan dan Konsep Kunci Tercakup

Dan itu saja! Anda telah berhasil membuat Countdown Clock yang dinamis. Pengguna sekarang dapat melihat sisa hari, jam, menit, dan detik hingga acara target.

Dalam tutorial ini, kami membahas konsep utama berikut:

  • Struktur HTML menggunakan elemen div untuk mewakili jCountdown Clock.
  • Gaya CSS untuk menciptakan tampilan yang diinginkan.
  • Objek Tanggal JavaScript untuk menghitung sisa waktu.
  • Memanipulasi dan memperbarui elemen HTML menggunakan JavaScript.
  • Memanfaatkan setInterval untuk memperbarui Countdown secara real-time.