help with removal of days

JavaScript and client side scripting.

Moderator: General Moderators

Post Reply
nite4000
Forum Contributor
Posts: 209
Joined: Sun Apr 12, 2009 11:31 am

help with removal of days

Post by nite4000 »

i have this js code here

Code: Select all

<script type="text/javascript">
function myCounter(o, timeArray){
var counter = document.getElementById(o);
if(!counter) {
return;
} 
function mksec(day, h, m, s){ return day*24*60*60+h*60*60+m*60+s; }
function toTimeString(sec, showZero){
var d=Math.floor(sec/(60*60*24))
var h=Math.floor(sec/(60*60)%24);
var m=Math.floor((sec/60) % 60);
var s=sec % 60;
var ret=d+'days '+h+'hrs '+m+'min '+s+'sec';
if(showZero){
return ret;
} 
else if(d==0 && h==0 && m==0){ 
return s+'sec';
}else if(d==0){
return h+'hrs '+m+'min '+s+'sec';
}else if(d==0 && h==0){
return m+'min '+s+'sec';
}else {
return ret; 
}
}        

var secArray = [];
var dayNow = new Date().getDay();
for(var i=0;i<timeArray.length;i++){
var day=timeArray[i][0]; 
if(day==-1){ 
day=dayNow; 
}

secArray.push({
day: timeArray[i][0],sec: mksec(day, timeArray[i][1], timeArray[i][2], timeArray[i][3]), msg: timeArray[i][4] || false, showZero: timeArray[i][5] || false });}
secArray.sort(function(a,b){ return a.sec-b.sec;});
		       
			       // timer code - will be called around each second (~1000 ms)     
function updateCounter(){          
 // get current UTC time in seconds  
var d=new Date(); 
var secNow = mksec(d.getDay(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds());
// find next event  
var nextIndex=0;
for(var i=0;i<secArray.length; i++){
var diff = secArray[i].sec-secNow;
if(diff>0){
nextIndex=i;
break;
}
 }            
												      
var diff=secArray[nextIndex].sec-secNow;
var prevDiff=diff;
if(diff<0){ 
var dayDiff = 6-secArray[nextIndex].day;      
if(secArray[nextIndex].day == -1){  
dayDiff=0;  
}  
																	   
diff=(dayDiff+1)*24*60*60-Math.abs(diff);             }   
var str='';          
// get message if there is any set  
if(secArray[nextIndex].msg){                 str=secArray[nextIndex].msg;             }    
var timeString = toTimeString(diff, secArray[nextIndex].showZero);     
if(str.match('@{counter}')!=null){          
str=str.replace(/@{counter}/, timeString); 
}else if(str.indexOf(' ')==0){ // message starts with space                 str=timeString+str;             }else{ 
// no specific hint where to put counter, so display it after message     
str+=timeString;             }  
counter.innerHTML=str;        }  
 setInterval(updateCounter, 1000); 
};
myCounter('counter', [ [0,16, 0, 0, '<b>Results will be display in :<b> @{counter}', false] ]);
                                                                                  </script>

it displays days,hours,minute,seconds. I need to remove the days part and only show hours,minutes,seconds

Thanks
Post Reply