WolfShade
09-10-2012, 08:01 PM
Just something I threw together for something else, thought someone might benefit from it. Displays a live, real time clock value based upon the time of the web server.
Will not work in IE6 or earlier. Tested in IE7/8, FF12, and Chrome 10.
Uses AJaX and does NOT require jQuery.
<div id="serverTime"></div>
<script type="text/javascript">
String.prototype.pad = function(l,s){ // Pad integers with a leading '0'
return (l -= this.length) > 0
? (s = new Array(Math.ceil(l / s.length) + 1).join(s)).substr(0,s.length) + this + s.substr(0, l-s.length)
: this ;
};
// This will not work in IE6 or earlier
function getST(){
var xhr = new XMLHttpRequest();
xhr.open('HEAD',window.location.href.toString(),false);
xhr.setRequestHeader("Content-Type","text/html");
xhr.send('');
var date = xhr.getResponseHeader("Date");
date = new Date(date);
var nowDate = new Date(date.toLocaleString());
var thisDay = nowDate.getDay();
switch(thisDay){
case 0: thisDay = "Sunday"; break; case 1: thisDay = "Monday"; break; case 2: thisDay = "Tuesday"; break;
case 3: thisDay = "Wednesday"; break; case 4: thisDay = "Thursday"; break; case 5: thisDay = "Friday"; break;
case 6: thisDay = "Saturday"; break;
}
var thisMonth = nowDate.getMonth();
switch(thisMonth){
case 0: thisMonth = "January"; break; case 1: thisMonth = "February"; break; case 2: thisMonth = "March"; break;
case 3: thisMonth = "April"; break; case 4: thisMonth = "May"; break; case 5: thisMonth = "June"; break;
case 6: thisMonth = "July"; break; case 7: thisMonth = "August"; break; case 8: thisMonth = "September"; break;
case 9: thisMonth = "October"; break; case 10: thisMonth = "November"; break; case 11: thisMonth ="December"; break;
}
var thisDate = nowDate.getDate().toString().pad(2,"0");
var thisYear = nowDate.getFullYear().toString();
var thisHour = nowDate.getHours().toString().pad(2,"0");
var thisMinute = nowDate.getMinutes().toString().pad(2,"0");
var thisSecond = nowDate.getSeconds().toString().pad(2,"0");
document.getElementById("serverTime").innerHTML = thisDay+", "+thisMonth+" "+thisDate+", "+thisYear+" "+thisHour+":"+thisMinute+":"+thisSecond;
} var serverTimeDisplay = setInterval("getST()",1000);
</script>
Will not work in IE6 or earlier. Tested in IE7/8, FF12, and Chrome 10.
Uses AJaX and does NOT require jQuery.
<div id="serverTime"></div>
<script type="text/javascript">
String.prototype.pad = function(l,s){ // Pad integers with a leading '0'
return (l -= this.length) > 0
? (s = new Array(Math.ceil(l / s.length) + 1).join(s)).substr(0,s.length) + this + s.substr(0, l-s.length)
: this ;
};
// This will not work in IE6 or earlier
function getST(){
var xhr = new XMLHttpRequest();
xhr.open('HEAD',window.location.href.toString(),false);
xhr.setRequestHeader("Content-Type","text/html");
xhr.send('');
var date = xhr.getResponseHeader("Date");
date = new Date(date);
var nowDate = new Date(date.toLocaleString());
var thisDay = nowDate.getDay();
switch(thisDay){
case 0: thisDay = "Sunday"; break; case 1: thisDay = "Monday"; break; case 2: thisDay = "Tuesday"; break;
case 3: thisDay = "Wednesday"; break; case 4: thisDay = "Thursday"; break; case 5: thisDay = "Friday"; break;
case 6: thisDay = "Saturday"; break;
}
var thisMonth = nowDate.getMonth();
switch(thisMonth){
case 0: thisMonth = "January"; break; case 1: thisMonth = "February"; break; case 2: thisMonth = "March"; break;
case 3: thisMonth = "April"; break; case 4: thisMonth = "May"; break; case 5: thisMonth = "June"; break;
case 6: thisMonth = "July"; break; case 7: thisMonth = "August"; break; case 8: thisMonth = "September"; break;
case 9: thisMonth = "October"; break; case 10: thisMonth = "November"; break; case 11: thisMonth ="December"; break;
}
var thisDate = nowDate.getDate().toString().pad(2,"0");
var thisYear = nowDate.getFullYear().toString();
var thisHour = nowDate.getHours().toString().pad(2,"0");
var thisMinute = nowDate.getMinutes().toString().pad(2,"0");
var thisSecond = nowDate.getSeconds().toString().pad(2,"0");
document.getElementById("serverTime").innerHTML = thisDay+", "+thisMonth+" "+thisDate+", "+thisYear+" "+thisHour+":"+thisMinute+":"+thisSecond;
} var serverTimeDisplay = setInterval("getST()",1000);
</script>