Simple HTML/Javascript countdown

For an internal event inside our company we needed countdown, showing how much time is left until the event starts. Since where are an international company, I had to take care of the different timezones. Here is my simple piece of code, that could be used inside any webpage, without any additional resources or libraries.

[SOME IMPORTANT DATE TITLE]
[Some subtext]

732
Days
18
Hours
05
Minutes
30
Seconds

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<style>
#clockdiv {
background: #ebd3ce;
color: #fff;
display: inline-block;
font-weight: 100;
text-align: center;
font-size: 20px;
padding: 5px;
width: 100%;
margin-bottom: 20px;
}
#clockdiv > div {
height: 60px;
padding: 10px;
display: inline-block;
}
#clockdiv div > span{
padding: 10px;
background: #d13d73;
display: inline-block;
}
.clockdiv_smalltext {
padding-top: 5px;
font-size: 12px;
color: #000;
}
.clockdiv_title {
background: #ebd3ce !important;
font-size: 30px;
color: #000 !important;
}
</style>
<div id="clockdiv">
<div class="clockdiv_title">
<span class="clockdiv_title">REHAU SUMMIT</span>
<div class="clockdiv_smalltext">Find out more <a href="./tag/rehau2020/">here.</a></div>
</div>
<div>
<span class="clockdiv_days"></span>
<div class="clockdiv_smalltext">Days</div>
</div>
<div>
<span class="clockdiv_hours"></span>
<div class="clockdiv_smalltext">Hours</div>
</div>
<div>
<span class="clockdiv_minutes"></span>
<div class="clockdiv_smalltext">Minutes</div>
</div>
<div>
<span class="clockdiv_seconds"></span>
<div class="clockdiv_smalltext">Seconds</div>
</div>
</div>
<script>
function getTimeRemaining(endtime) {
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor((t / 1000) % 60);
var minutes = Math.floor((t / 1000 / 60) % 60);
var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
var days = Math.floor(t / (1000 * 60 * 60 * 24));
if(seconds <= 0) seconds = 0;
if(minutes <= 0) minutes = 0;
if(hours <= 0) hours = 0;
if(days <= 0) days = 0;
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(id, endtime) {
var clock = document.getElementById(id);
var daysSpan = clock.querySelector('.clockdiv_days');
var hoursSpan = clock.querySelector('.clockdiv_hours');
var minutesSpan = clock.querySelector('.clockdiv_minutes');
var secondsSpan = clock.querySelector('.clockdiv_seconds');
function updateClock() {
var t = getTimeRemaining(endtime);
daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock, 1000);
}
var deadline = 'April 6 2017 09:00:00 UTC+0100';
initializeClock('clockdiv', deadline);
</script>
<style> #clockdiv { background: #ebd3ce; color: #fff; display: inline-block; font-weight: 100; text-align: center; font-size: 20px; padding: 5px; width: 100%; margin-bottom: 20px; } #clockdiv > div { height: 60px; padding: 10px; display: inline-block; } #clockdiv div > span{ padding: 10px; background: #d13d73; display: inline-block; } .clockdiv_smalltext { padding-top: 5px; font-size: 12px; color: #000; } .clockdiv_title { background: #ebd3ce !important; font-size: 30px; color: #000 !important; } </style> <div id="clockdiv"> <div class="clockdiv_title"> <span class="clockdiv_title">REHAU SUMMIT</span> <div class="clockdiv_smalltext">Find out more <a href="./tag/rehau2020/">here.</a></div> </div> <div> <span class="clockdiv_days"></span> <div class="clockdiv_smalltext">Days</div> </div> <div> <span class="clockdiv_hours"></span> <div class="clockdiv_smalltext">Hours</div> </div> <div> <span class="clockdiv_minutes"></span> <div class="clockdiv_smalltext">Minutes</div> </div> <div> <span class="clockdiv_seconds"></span> <div class="clockdiv_smalltext">Seconds</div> </div> </div> <script> function getTimeRemaining(endtime) { var t = Date.parse(endtime) - Date.parse(new Date()); var seconds = Math.floor((t / 1000) % 60); var minutes = Math.floor((t / 1000 / 60) % 60); var hours = Math.floor((t / (1000 * 60 * 60)) % 24); var days = Math.floor(t / (1000 * 60 * 60 * 24)); if(seconds <= 0) seconds = 0; if(minutes <= 0) minutes = 0; if(hours <= 0) hours = 0; if(days <= 0) days = 0; return { 'total': t, 'days': days, 'hours': hours, 'minutes': minutes, 'seconds': seconds }; } function initializeClock(id, endtime) { var clock = document.getElementById(id); var daysSpan = clock.querySelector('.clockdiv_days'); var hoursSpan = clock.querySelector('.clockdiv_hours'); var minutesSpan = clock.querySelector('.clockdiv_minutes'); var secondsSpan = clock.querySelector('.clockdiv_seconds'); function updateClock() { var t = getTimeRemaining(endtime); daysSpan.innerHTML = t.days; hoursSpan.innerHTML = ('0' + t.hours).slice(-2); minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); if (t.total <= 0) { clearInterval(timeinterval); } } updateClock(); var timeinterval = setInterval(updateClock, 1000); } var deadline = 'April 6 2017 09:00:00 UTC+0100'; initializeClock('clockdiv', deadline); </script>
<style>
#clockdiv {
	background: #ebd3ce;
	color: #fff;
	display: inline-block;
	font-weight: 100;
	text-align: center;
	font-size: 20px;
	padding: 5px;
	width: 100%;
	margin-bottom: 20px;
}

#clockdiv > div {
	height: 60px;
	padding: 10px;
	display: inline-block;
}

#clockdiv div > span{
	padding: 10px;
	background: #d13d73;
	display: inline-block;
}

.clockdiv_smalltext {
	padding-top: 5px;
	font-size: 12px;
	color: #000;
}

.clockdiv_title {
	background: #ebd3ce !important;
	font-size: 30px;
	color: #000 !important;
}

</style>

<div id="clockdiv">
  <div class="clockdiv_title">
    <span class="clockdiv_title">REHAU SUMMIT</span>
    <div class="clockdiv_smalltext">Find out more <a href="./tag/rehau2020/">here.</a></div>
  </div>
  <div>
    <span class="clockdiv_days"></span>
    <div class="clockdiv_smalltext">Days</div>
  </div>
  <div>
    <span class="clockdiv_hours"></span>
    <div class="clockdiv_smalltext">Hours</div>
  </div>
  <div>
    <span class="clockdiv_minutes"></span>
    <div class="clockdiv_smalltext">Minutes</div>
  </div>
  <div>
    <span class="clockdiv_seconds"></span>
    <div class="clockdiv_smalltext">Seconds</div>
  </div>
</div>

<script>

function getTimeRemaining(endtime) {
    var t = Date.parse(endtime) - Date.parse(new Date());
    var seconds = Math.floor((t / 1000) % 60);
    var minutes = Math.floor((t / 1000 / 60) % 60);
    var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
    var days = Math.floor(t / (1000 * 60 * 60 * 24));

    if(seconds <= 0) seconds = 0;
    if(minutes <= 0) minutes = 0;
    if(hours <= 0) hours = 0;
    if(days <= 0) days = 0;

    return {
        'total': t,
        'days': days,
        'hours': hours,
        'minutes': minutes,
        'seconds': seconds
    };
}

function initializeClock(id, endtime) {
    var clock = document.getElementById(id);
    var daysSpan = clock.querySelector('.clockdiv_days');
    var hoursSpan = clock.querySelector('.clockdiv_hours');
    var minutesSpan = clock.querySelector('.clockdiv_minutes');
    var secondsSpan = clock.querySelector('.clockdiv_seconds');

    function updateClock() {
        var t = getTimeRemaining(endtime);

        daysSpan.innerHTML = t.days;
        hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
        minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
        secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);

        if (t.total <= 0) {
            clearInterval(timeinterval);
        }
    }

    updateClock();
    var timeinterval = setInterval(updateClock, 1000);
}

var deadline = 'April 6 2017 09:00:00 UTC+0100';
initializeClock('clockdiv', deadline);

</script>

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

The maximum upload file size: 128 MB. You can upload: image, audio, video, document, archive, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop files here