Streaming live at 10am (PST)

Countdown Timer calling back expired setting


#1

Hello!

I’m embedding the following code into a Div Block for a countdown timer, but no matter what I change the date to in the future, it publishes as “Now!” (The expired setting). Any help you could give me would be really appreciated. It worked for me last year, but it won’t all of a sudden. Would the fact that we changed to the SSL server effect this at all??? Thanks so much!

<script type="text/javascript">
//###################################################################
// Author: ricocheting.com
// Version: v3.0
// Date: 2014-09-05
// Description: displays the amount of time until the "dateFuture" entered below.

var CDown = function() {
	this.state=0;// if initialized
	this.counts=[];// array holding countdown date objects and id to print to {d:new Date(2013,11,18,18,54,36), id:"countbox1"}
	this.interval=null;// setInterval object
}

CDown.prototype = {
	init: function(){
		this.state=1;
		var self=this;
		this.interval=window.setInterval(function(){self.tick();}, 1000);
	},
	add: function(date,id){
		this.counts.push({d:date,id:id});
		this.tick();
		if(this.state==0) this.init();
	},
	expire: function(idxs){
		for(var x in idxs) {
			this.display(this.counts[idxs[x]], "Now!");
			this.counts.splice(idxs[x], 1);
		}
	},
	format: function(r){
		var out="";
		if(r.d != 0){out += r.d +" "+((r.d==1)?"day":"days")+", ";}

		return out.substr(0,out.length-2);
	},
	math: function(work){
		var	y=w=d=h=m=s=ms=0;

		ms=(""+((work%1000)+1000)).substr(1,3);
		work=Math.floor(work/1000);//kill the "milliseconds" so just secs

		y=Math.floor(work/31536000);//years (no leapyear support)
		w=Math.floor(work/604800);//weeks
		d=Math.floor(work/86400);//days
		work=work%86400;

		h=Math.floor(work/3600);//hours
		m=Math.floor(work/60);//minutes
		s=Math.floor(work);//seconds

		return {y:y,w:w,d:d,h:h,m:m,s:s,ms:ms};
	},
	tick: function(){
		var now=(new Date()).getTime(),
			expired=[],cnt=0,amount=0;

		if(this.counts)
		for(var idx=0,n=this.counts.length; idx<n; ++idx){
			cnt=this.counts[idx];
			amount=cnt.d.getTime()-now;//calc milliseconds between dates

			// if time is already past
			if(amount<0){
				expired.push(idx);
			}
			// date is still good
			else{
				this.display(cnt, this.format(this.math(amount)));
			}
		}

		// deal with any expired
		if(expired.length>0) this.expire(expired);

		// if no active counts, stop updating
		if(this.counts.length==0) window.clearTimeout(this.interval);
		
	},
	display: function(cnt,msg){
		document.getElementById(cnt.id).innerHTML=msg;
	}
};

window.onload=function(){
	var cdown = new CDown();

cdown.add(new Date(2018,10,17,0,00,00), "countbox1");
};
</script>
<div id="countbox1" style=" margin-top: 0px;
  margin-bottom: 10px;
  font-family:'Georgia', serif;
  color: #ffffff;
  font-size: 40px;
  line-height: 47px;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;"></div>

#2

This is the link to my project… the embeded code is on the home page.
https://preview.webflow.com/preview/christkindlmarkt-3?preview=569b8da82d45b47682e746d9ef56e258


#3

Hi @Christina, can you help to share the link to the published page as well?

Thanks in advance


#4

Absolutely! I’ve pulled it off of our live site (because it’s not working), but here it is on the webflow url…

Thanks Dave!