Skip to content

Instantly share code, notes, and snippets.

@a-r-d
Created May 12, 2012 00:29
Show Gist options
  • Save a-r-d/2663322 to your computer and use it in GitHub Desktop.
Save a-r-d/2663322 to your computer and use it in GitHub Desktop.
JS timer. Plain text. Uses jQuery.
// A timer that uses jQuery only cause I'm lazy...
// Include the jQuery lib and
// set a div to id='timerArea' and it will render
// a timer that counts down from the following date settings:
//Set up your timer!
timerLocation = "#timerArea";
timerYear = 2013;
timerMonth = 5;
timerDay = 15;
timerHour = 15;
timerMinute = 30;
timerSecond = 0;
$(document).ready( function() {
startTimer();
}); // end ready wrapper.
timerHeight = 150;
timerWidth = 800;
hexArr = ['0', '1', '2', '3', '4', '5', '6', '7', '8',
'9', 'a', 'b', 'c', 'd', 'e', 'f'];
function startTimer() {
$(timerLocation).css({
position: 'relative',
width: timerWidth + "px",
height: timerHeight + "px",
backgroundColor: 'black',
color: 'white',
fontSize: "90px",
textAlign: "center"
});
// wtf javascript.
timerMonth--;
setInterval( function() {
// clear old timer values
$(timerArea).empty();
// prepare the dates
var d = new Date(timerYear, timerMonth, timerDay, timerHour, timerMinute, timerSecond, 0);
var now = new Date;
var timeDiff = (d.getTime() - now.getTime()) / 1000; // milliseconds to seconds
// set up our numbers
var yrsTill = Math.floor(timeDiff / (60*60*24*365));
timeDiff -= yrsTill * (60*60*24*365);
var daysTill = Math.floor(timeDiff / (60*60*24));
timeDiff -= daysTill * 60 * 60 * 24;
var hrsTill = Math.floor(timeDiff / (60 * 60));
timeDiff -= hrsTill * 60 * 60;
var minsTill = Math.floor(timeDiff / 60);
timeDiff -= minsTill * 60;
var secsTill = Math.floor(timeDiff);
// formatting:
yrsTill = generateSpan(addZeros(yrsTill));
daysTill = generateSpan(addZeros(daysTill));
hrsTill = generateSpan(addZeros(hrsTill));
minsTill = generateSpan(addZeros(minsTill));
secsTill = generateSpan(addZeros(secsTill));
$(timerArea).append(yrsTill + ":" + daysTill + ":" + hrsTill + ":" + minsTill + ":" + secsTill);
}, 1000);
}
function addZeros(nums) {
nums = String(nums);
if(nums.length <= 1)
nums = "0" + nums;
return nums;
}
function generateSpan(yrsTill) {
var newClr = "#";
for(var i=0; i < 6; i++) {
var hex = Math.round(Math.random() * (hexArr.length - 1));
newClr = newClr + hexArr[hex];
}
var style = "style='color:" + newClr + ";'";
var yrs = "<span " + style + ">" + yrsTill + "</span>";
return yrs;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment