Keeping Track of User Access Time
/*
Mastering JavaScript, Premium Edition
by James Jaworski
ISBN:078212819X
Publisher Sybex CopyRight 2001
*/
<HTML>
<HEAD>
<TITLE>Keeping track of Web site access time</TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
function nameDefined(c,n) {
var s=removeBlanks(c)
var pairs=s.split(";")
for(var i=0;i<pairs.length;++i) {
var pairSplit=pairs[i].split("=")
if(pairSplit[0]==n) return true
}
return false
}
function removeBlanks(s) {
var temp=""
for(var i=0;i<s.length;++i) {
var c=s.charAt(i)
if(c!=" ") temp += c
}
return temp
}
function getCookieValue(c,n) {
var s=removeBlanks(c)
var pairs=s.split(";")
for(var i=0;i<pairs.length;++i) {
var pairSplit=pairs[i].split("=")
if(pairSplit[0]==n) return pairSplit[1]
}
return ""
}
function insertTimeCounter() {
today = new Date()
startTime = today.getTime()
readCookie()
displayCounter()
setInterval("setCookie()",1000)
}
function displayCounter() {
document.write('<H3 ALIGN="CENTER">')
document.write("Welcome! You've accessed this site ")
if(prevTime==0) document.write("for the first time.")
else document.write("over "+displayTime())
document.writeln('</H3>')
}
function displayTime() {
var seconds=Math.round(prevTime/1000)
var minutes=Math.round(seconds/60)
var hours=Math.round(minutes/60)
if(seconds<60) return ""+seconds+ " seconds."
else if(minutes<60) return ""+minutes+ " minutes."
else return ""+hours+" hours "
}
function readCookie() {
var cookie=document.cookie
prevTime=0
if(nameDefined(cookie,"timeCount"))
prevTime=parseInt(getCookieValue(cookie,"timeCount"))
}
function setCookie() {
now = new Date()
endTime = now.getTime()
duration = endTime-startTime
var newCookie="timeCount="+(prevTime+duration)
newCookie += "; expires=Wednesday, 10-Nov-10 23:12:40 GMT"
newCookie += "; path=/"
window.document.cookie=newCookie
}
// --></SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SCRIPT LANGUAGE="JavaScript"><!--
insertTimeCounter()
// --></SCRIPT>
<H1 ALIGN="CENTER">Keeping track of Web site access time</H1>
<P ALIGN="CENTER">[The rest of the Web page goes here.]</P>
</BODY>
Related examples in the same category