Forum:Countdown

On the Metal Gear Wiki we had a countdown to a certain date. How do you do this? I can't find instructions anywhere. --Drawde83 22:51, 6 August 2008 (UTC)
 * I responded on the forum there, but I'll do it here too so more people can see it if they ever want one. First, you want to put this code in MediaWiki:Common.js:

// ************************************************** // Experimental javascript countdown timer (Splarka) // Version 0.0.3 // ************************************************** // // Usage example: // //  Only January 01 2007 00:00:00 PST until New years. // //  Javascript disabled.

function updatetimer(i) { var now = new Date; var then = timers[i].eventdate; var diff = count=Math.floor((then.getTime-now.getTime)/1000);

// catch bad date strings if(isNaN(diff)) { timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **' ; return; }

// determine plus/minus if(diff<0) { diff = -diff; var tpm = 'T plus '; } else { var tpm = 'T minus '; }

// calcuate the diff var left = (diff%60) + ' seconds'; diff=Math.floor(diff/60); if(diff > 0) left = (diff%60) + ' minutes ' + left; diff=Math.floor(diff/60); if(diff > 0) left = (diff%24) + ' hours ' + left; diff=Math.floor(diff/24); if(diff > 0) left = diff + ' days ' + left timers[i].firstChild.nodeValue = tpm + left;

// a setInterval is more efficient, but calling setTimeout // makes errors break the script rather than infinitely recurse timeouts[i] = setTimeout('updatetimer(' + i + ')',1000); }

function checktimers { //hide 'nocountdown' and show 'countdown' var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown'); for(var i in nocountdowns) nocountdowns[i].style.display = 'none' var countdowns = getElementsByClassName(document, 'span', 'countdown'); for(var i in countdowns) countdowns[i].style.display = 'inline'

//set up global objects timers and timeouts. timers = getElementsByClassName(document, 'span', 'countdowndate'); //global timeouts = new Array; // generic holder for the timeouts, global if(timers.length == 0) return; for(var i in timers) { timers[i].eventdate = new Date(timers[i].firstChild.nodeValue); updatetimer(i); //start it up  } } addOnloadHook(checktimers);

// ************************************************** // - end -  Experimental javascript countdown timer // **************************************************


 * Then for the timer to show up, you use this code on a page or template:

Only January 01 2009 00:00:00 PST until New years. This message will be displayed if the timer does not show up (like if you do not have javascript enabled on your browser)


 * which will show up as (it won't work here as the code for it is not in MediaWiki:Common.js)

Only January 01 2009 00:00:00 PST until New years. This message will be displayed if the timer does not show up (like if you do not have javascript enabled on your browser or if you did not put the code in MediaWiki:Common.js)


 * You can also add a div tag to customize it like this:

Only January 01 2009 00:00:00 PST until New years. This message will be displayed if the timer does not show up (like if you do not have javascript enabled on your browser or if you did not put the code in MediaWiki:Common.js)


 * which will show up as (it won't work here as the code for it is not in MediaWiki:Common.js)

Only January 01 2009 00:00:00 PST until New years. This message will be displayed if the timer does not show up (like if you do not have javascript enabled on your browser)


 * Hope that helps.--Richard 16:05, 8 August 2008 (UTC)