Here’s a cleaned up version of that code, with thanks to jsbeautifier.org and [url=“http://jslint.com/”]jslint.com
<div id="cd"></div>
...
<script src="countdowntimer.js"></script>
<script>
// add timing information script from PHP here
</script>
Countdown timer script in countdowntimer.js
// Countdown Javascript
// copyright 20th April 2005, 11th March 2011 by Stephen Chapman
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration
// you may change the start function if required
function setC(month, day, dow, hour, min, tz) {
var toDate = new Date(),
fromDate = new Date(),
diffDate = new Date(0);
if (day.substr(0, 1) === '+') {
day = parseInt(day.substr(1), 10);
toDate.setDate(toDate.getDate() + day);
} else {
toDate.setDate(day);
}
if (month === '*') {
toDate.setMonth(toDate.getMonth() + 1);
} else if (month > 0) {
if (month <= toDate.getMonth()) {
toDate.setFullYear(toDate.getFullYear() + 1);
}
toDate.setMonth(month - 1);
}
if (dow > 0) {
toDate.setDate(toDate.getDate() + (dow - 1 - toDate.getDay()) % 7);
}
toDate.setHours(hour);
toDate.setMinutes(min - (tz * 60));
toDate.setSeconds(0);
fromDate = new Date();
fromDate.setMinutes(fromDate.getMinutes() + fromDate.getTimezoneOffset());
diffDate.setMilliseconds(toDate - fromDate);
return Math.floor(diffDate.valueOf() / 1000);
}
function setCountdown(month, day, dow, hour, min, tz) {
var m = (month === '*') ? 0 : month,
c = setC(m, day, dow, hour, min, tz);
if (month === '*' && c < 0) {
c = setC('*', day, dow, hour, min, tz);
}
return c;
}
function displayCountdown(countdn, cd) {
var secs = 0,
mins = 0,
hours = 0,
days = 0,
countdn1 = 0;
if (countdn < 0) {
document.getElementById(cd).innerHTML = "Sorry, you are too late.";
} else {
secs = countdn % 60;
if (secs < 10) {
secs = '0' + secs;
}
countdn1 = (countdn - secs) / 60;
mins = countdn1 % 60;
if (mins < 10) {
mins = '0' + mins;
}
countdn1 = (countdn1 - mins) / 60;
hours = countdn1 % 24;
days = (countdn1 - hours) / 24;
document.getElementById(cd).innerHTML = days + ' days + ' + hours + ' : ' + mins + ' : ' + secs;
setTimeout('displayCountdown(' + (countdn - 1) + ',\\'' + cd + '\\');', 999);
}
}
This is the timing information that PHP needs to add to the page:
// repeat the following code for each countdown timer on your page
var month = '*', // 1 through 12 or '*' within the next month, '0' for the current month
day = '1', // day of month or + day offset
dow = 0, // day of week sun=1 sat=7 or 0 for whatever day it falls on
hour = 14, // 0 through 23 for the hour of the day
min = 0, // 0 through 59 for minutes after the hour
tz = 10, // offset in hours from UTC to your timezone
lab = 'cd'; // id of the entry on the page where the counter is to be inserted
displayCountdown(setCountdown(month, day, dow, hour, min, tz), lab);
// end of code to be repeated
If there’s only the one countdown timer on your page, there’s no need to repeat the above script.