Design a Digital Clock using JavaScript
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>