Simple, lightweight and easy to use countdown plugin

Usage no npm install needed!

<script type="module">
  import easyCountdown from 'https://cdn.skypack.dev/easy-countdown';



countdown is a jQuery plugin to render countdowns. Instead of unicorns this plugin does not have any magic, but if you like countdowns to be rendered the way you want, this plugin might become your best friend.

Uber simple setup

To use the countdown plugin you need to load the current version of jQuery (tested with 1.7.2) and the javascript file of the plugin. Just add the following lines to the head of your website:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="/path/to/jquery.countdown.js"></script>

Then you have to initialize the plugin with your desired configuration:

$(function() {
        date: "June 7, 2087 15:03:26"

Yep, it's easy like that! Enjoy the time you saved!


You can pass a set of these options to set a custom behaviour and look for the plugin.

Property (Type) Default Description
date new Date("June 7, 2087 15:03:25") The end time of your fancy countdown. Pass either a date object or a string/integer that will be used to create a new Date object. Here you can find all accepted formats of this value.
refresh 1000 Refresh rate in milliseconds or false to avoid automatic updates.
render With the render option you can set a function to change the output of the plugin. This function is called in the scope of the plugin, so you can access the leadingZeros method to format numbers as well as public variables and methods. A literal object will be passed to this function as an argument, containing the remaining time parts (years, days, hours, min, sec).
onEnd Callback function that is called when the end date is reached
offset A period of time (in milliseconds) that is used as offset in time difference calculation between now and end time. Useful if countdown calculation to end time is imprecise due to user's date and time settings.

Public plugin methods

method(arguments) Description
leadingZeros(number, [length = 2]) Add leading zeros to a number.
update(newDate) Update the end time. The possible formats of the argument newDate are the same as described in the date-option above.
updateOffset(newOffset) Update the offset (time in milliseconds).
render() Call the render method. This might be usefull if you set refresh to false.
stop() Stops the refresh loop.
start([refreshRate]) Start the refresh loop. If you set a refresh rate in the options you can overwrite it with the argument refreshRate. If you don't pass an argument, the old value or the default value of 1 sec will be used.
restart(options) Update the options and restart the countdown


Version 2.2.0 - May 6, 2016

  • added restart countdown api method (Thanks @scazzy)
  • Fixed bower dependencies and main field

Version 2.1.0 - Oct 13, 2014

  • Added time offset option to fix time differences between server and client time (#8)

Version 2.0.0 - Oct 13, 2014

  • removed coffee-script dependency
  • added vanilla version
  • add UMD wrapper (commonJS, require.js, global)
  • added support to define the end date with the data-date attribute (#14)

Version 1.0.1 - May 01, 2013

  • Added callback function when the end date is reached

Version 1.0.0 - Aug 05, 2012

  • Initial release


countdown is dual licensed under the MIT and GPL-3.0 licenses.