Tiny digital clock using JavaScript
In this tutorial, I will show you how to build a digital clock using pure JavaScript.
At the end of this tutorial, we'll have done this clock that in the following image below.
Create the file index.html
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Digital Clock</title> </head> <body> <!--for representing our "hh:mm:ss tt" format.--> <h1 id="time"></h1> <!--Include our external JavaScript file --> <script src="./script.js"></script> </body> </html>
Now we have created starter Html file, let's create the JavaScript file.
Let's first create a reference for the h1
tag.
var timeEl = document.getElementById('time');
Now we need to create a function that get the current time and format the time as "hh:mm:ss tt"
function getCurrentTime(){ // Get the current time var dateOBJ = new Date(); // Serialize clock time var time = { hours:dateOBJ.getHours(), minutes:dateOBJ.getMinutes(), seconds:dateOBJ.getSeconds(), tt:'AM' } // convert to 12 time if(time.hours == 12){ time.ampm = 'PM'; }else if(time.hours > 12){ time.hours -= 12; time.tt = 'PM' } // Prepend a 0 on the hours to make double digits if(time.hours < 10){ time.hours = '0'+time.hours } // Prepend a 0 on the Minutes to make double digits if(time.minutes < 10){ time.minutes = '0'+time.minutes } // Prepend a 0 on the Seconds to make double digits if(time.seconds < 10){ time.seconds = '0'+time.seconds } // Format the click time as a string "hh:mm:ss tt" return time.hours + ':' + time.minutes + ':' + time.seconds + ' ' + time.tt }
We've done the first function
that gets the current time and return it formatted as "hh:mm:ss tt"
Now, every second get the current time, so, we'll use a built-in method setInterval(function, milliseconds)
calls a function or evaluates an expression at specified intervals (in milliseconds).
// We added this for work on page open var time = getCurrentTime(); timeEl.innerText = time; setInterval(function(){ // GET TIME STRING var time = getCurrentTime(); // Replace the current text timeEl.innerText = time; },1000);
we've finished our Js
file it should be looks like.
var timeEl = document.getElementById('time'); // We added this for work on page open var time = getCurrentTime(); timeEl.innerText = time; setInterval(function(){ // GET TIME STRING var time = getCurrentTime(); // Replace the current text timeEl.innerText = time; },1000); function getCurrentTime(){ // Get the current time var dateOBJ = new Date(); // Serialize clock time var time = { hours:dateOBJ.getHours(), minutes:dateOBJ.getMinutes(), seconds:dateOBJ.getSeconds(), tt:'AM' } // convert to 12 time if(time.hours == 12){ time.ampm = 'PM'; }else if(time.hours > 12){ time.hours -= 12; time.tt = 'PM' } // Prepend a 0 on the hours to make double digits if(time.hours < 10){ time.hours = '0'+time.hours } // Prepend a 0 on the Minutes to make double digits if(time.minutes < 10){ time.minutes = '0'+time.minutes } // Prepend a 0 on the Seconds to make double digits if(time.seconds < 10){ time.seconds = '0'+time.seconds } // Format the click time as a string "hh:mm:ss tt" return time.hours + ':' + time.minutes + ':' + time.seconds + ' ' + time.tt }
Now, try it open the index.html
file in a browser and you will see the following below without any style.
Wow, so far so good, now we need to style our pretty clock.
In our index file.
<style> body{ background-size: cover; height: 100%; font-family: 'Fjalla One', sans-serif; text-align: center; color: #fff; text-shadow: 0px 5px 0px #6d6d6d; font-size: 100px; padding: 30px; background-color: #25beec; } </style>
We've finished our tutorial.
I hope it'll be helpful for you.
Top comments (0)