Design a Digital Clock using JavaScript

0
918

In this article, we are going to design a working digital clock using JavaScript.

The basic setup for digital clock :

<div id="clock"></div>


<script type="text/javascript">
  function showTime(){
    let time = new Date();
    let hour = time.getHours();
    let min = time.getMinutes();
    let sec = time.getSeconds();

    hour = hour < 10 ? "0" + hour:hour;
    min = min < 10 ? "0" + min:min;
    sec = sec < 10 ? "0" + sec:sec;

    let currentTime = hour + ':' + min + ':' +sec;

    document.getElementById('clock').innerHTML = currentTime;
  }

  showTime();
</script>

Complete source code with design

<style type="text/css">
  body{
    background: linear-gradient(to bottom right, #265f54, #61322b);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #clock{
    text-align: center;
    margin-bottom: 35px
  }
  .digit{
    display: inline-block;
    margin: 5px 10px;
  }
  .box1,.box2{
    width: 20px;
    height: 17px;
    border:  3px solid aqua;
    border-radius: 10px;
    border-width: 10px;
  }
  .box2{
    border-top-color: transparent;
  }
  .zero .box1{
    border-bottom-color: transparent;
  }
  .zero .box2{
    border-top-color: transparent;
  }
  .one .box1, .one .box2, .four .box2, .seven .box2{
    border-color: transparent;
    border-right-color: aqua;
  }
  .dot .box1, .dot .box2{
    background: aqua;
    border: none;
    margin-top: 25px;
  }
  .dot .box2{
    margin-bottom: 7px;
  }
  .two .box1, .three .box1{
    border-left-color: transparent;
  }
  .two .box2{
    border-right-color: transparent;
  }
  .three .box2, .five .box2, .nine .box2{
    border-left-color: transparent;
  }
  .four .box1{
    border-top-color: transparent;
  }
  .six .box1, .five .box1{
    border-right-color: transparent;
  }
  .seven .box1{
    border-left-color: transparent;
    border-bottom-color: transparent;
  }
</style>


<div id="clock"></div>


<script type="text/javascript">
  setInterval(showTime,1000);
  function showTime(){
    let time = new Date();
    let hour = time.getHours();
    let min = time.getMinutes();
    let sec = time.getSeconds();

    hour = hour < 10 ? "0" + hour:hour;
    min = min < 10 ? "0" + min:min;
    sec = sec < 10 ? "0" + sec:sec;

    hour = getDigit(hour);
    min = getDigit(min);
    sec = getDigit(sec);
    let currentTime = hour + getDot() + min + getDot() +sec;

    document.getElementById('clock').innerHTML = currentTime;
  }

  function getDot(){
    return '<div class="one dot digit"><div class="box1"></div><div class="box2"></div></div>';
  }

  function getDigit(num){
    html = '';
    num = num.toString();
    for(var i=0;i<num.length;i++){
      html += '<div class="'+getNumberText(num[i])+' digit"><div class="box1"></div><div class="box2"></div></div>';
    }
    return html;
  }

  function getNumberText(num){
    if(num=="0"){
      return 'zero';
    } else if(num=="1"){
      return "one";
    } else if(num=="2"){
      return "two";
    } else if(num=="3"){
      return "three";
    } else if(num=="4"){
      return "four";
    } else if(num=="5"){
      return "five";
    } else if(num=="6"){
      return "six";
    } else if(num=="7"){
      return "seven";
    } else if(num=="8"){
      return "eight";
    } else if(num=="9"){
      return "nine";
    }
  }

  showTime();
</script>

 

ALSO READ  Access WebCam using JavaScript [Updated]

Comments are closed.