How to create a simple JavaScript countdown timer

This JavaScript tutorial shows up the algorithm to make a simple countdown timer on your web pages, only with a few code lines.


Sampled by © JavaScriptBank.com

Dave, being a new web developer I would like to know how I can code for a numeric value to decrease by 1 every 24 hours based on the local time function.

Specifically, we are trying to create a reminder for our employees of an upcoming DoD audit in the facility. The count down will represent the number of days remaining before it's conducted. So what I need to do is begin with a date and start the countdown from there. What is the code that I should use?

Dave's Answer:

This is an obvious situation where JavaScript is going to be your friend, and it turns out that this is a straightforward application of JavaScript so it should be fairly easy.

The key is to realize that JavaScript is a so-called object oriented programming language and that it has a specific date object with "methods" that let you set and extract specific values. But, really, this task is even easier than that, because all we need to do is set a specific target date in the future, get the current date, then calculate the amount of time between them and divide it out so that we end up with days as the value.

You get the current date in JavaScript with new Date(), and it turns out that if you specify a date in the parens, it instantiates (creates) a new object with the specified date, rather than today. Want to have a date object with 28 February, 2005 as the specified date? Use new Date("28 February, 2005") and it'll work just fine.

Then we want to work with what us Unix types call the "epoch time" which is the number of milliseconds since a fixed point in the past. For convenience, it's 1 Jan, 1970 on most systems, but if you think about it you'll realize that it doesn't matter what date the epoch time starts with, as long as it's consistent across both values. Anyway, let's see some code!

<script language="javascript" type="text/javascript">

today  = new Date();
todayEpoch  = today.getTime();

target = new Date("28 February, 2005"); 
targetEpoch = target.getTime();

daysLeft = Math.floor(((targetEpoch - todayEpoch) / (60*60*24)) / 1000);
</script>

This JavaScript code snippet, which I'd put in the HEAD of my document, calculates the number of days left until the target date and saves it in the variable daysLeft. Notice that since we're actually working in milliseconds and we want days, we need to divide by 1000 to get seconds, then divide by 60 (to get minutes), 60 again (to get hours) and then 24 (to get days). Finally, we use the mathematical floor function to make sure we don't get weird values like 23.434233 days or similar, as a convenience.

Whenever you want to actually include that value on the page, simply add a single line of JavaScript within the HTML code:

<script>document.write(daysLeft);</script>

To put it all together, here's a simple little page that has both JavaScript code pieces displayed:

<html>
<head>
<title>JavaScript Countdown timer test</title>

<script language="javascript" type="text/javascript">

today  = new Date();
todayEpoch  = today.getTime();

target = new Date("28 February, 2005"); 
targetEpoch = target.getTime();

daysLeft = Math.floor(((targetEpoch - todayEpoch) / (60*60*24)) / 1000);
</script>

</head>
<body>

<h1>DoD inspection in

<script>document.write(daysLeft);</script>

days. Are you ready?
 </h1>

</body>

I hope that'll help you create what you need on your site, and good luck with your DoD inspection too!

Language
Translate this page to English Translate this page to French Translate this page to Vietnamese

Recent articles
How to open a car sharing service
Vue developer as a vital part of every software team
Vue.js developers: hire them, use them and get ahead of the competition
3 Reasons Why Java is so Popular
Migrate to Angular: why and how you should do it
The Possible Working Methods of Python Ideology
JavaScript Research Paper: 6 Writing Tips to Craft a Masterpiece
Learning How to Make Use of New Marketing Trends
5 Important Elements of an E-commerce Website
How To Create A Successful Prototype For Your PCB


Top view articles
Top 10 Beautiful Christmas Countdown Timers
Adding JavaScript to WordPress Effectively with JavaScript Localization feature
65 Free JavaScript Photo Gallery Solutions
16 Free Code Syntax Highlighters by Javascript For Better Programming
Best Free Linux Web Programming Editors
Top 10 Best JavaScript eBooks that Beginners should Learn
Top 50 Most Addictive and Popular Facebook mini games
More 30 Excellent JavaScript/AJAX based Photo Galleries to Boost your Sites
Top 10 Free Web Chat box Plug-ins and Add-ons
The Ultimate JavaScript Tutorial in Web Design


Free JavaScript Tutorials & Articles
at www.JavaScriptBank.com