我正在尝试使用特定的日期和时间来启动倒数计时器。从那里我需要它从1小时倒计时,然后通过添加一个小时更新初始日期和时间,然后无限期地重复。
这用于产品拍卖,一旦产品售罄就会获得新产品,价格从加入拍卖时起每小时下降,可能是一天中的任何时间。
示例:
我需要这个计时器在2014年,7月25日,11日,30日,0日,0日(8月25日)开始 2014年美国东部时间上午11:30)它将倒计时1小时,并在完成后 将在开始日期的一小时内添加2014年,7月,25日,12日,30日,0日, 0这将无限期地重复,直到我选择停止它为止。
根据网站访问者是否刷新页面,这也不会改变,这意味着他们访问该页面并看到剩余33分钟,而不是每次刷新时将其重置为1小时。
我打算使用这个倒数计时器:http://keith-wood.name/countdown.html
我需要的是我以变量形式提供它的时间。我试图尽可能地研究这个,没有任何运气,大多数都不够具体或只处理日期而不是时间。
我不是那么精通Javascript和jQuery;这是我到目前为止所做的。
请原谅我的代码,这里有很多想法:
$(document).ready(function() {
var everyhour = new Date();
//everyhour = new Date(everyhour.getFullYear() + 1, 1 - 1, 1);
everyhour = 2014, 8-1, 25, 9, 30, 0, 0;
// the above was my initial try and it wasn't getting me anywhere
var date = new Date(2014, 7, 25, 12, 0, 0);
var now = new Date();
var diff = date.getTime()/1000 - now.getTime()/1000;
alert (diff);
// The above was another stab at it, got me a little closer
var minutesToAdd = 60;
date.setMinutes(date.getMinutes()+minutesToAdd);
// the above was something I found on this website and got brain block
// the below was me trying to start a loop and get the date to update by adding an hour onto it
// for i
// if diff = 3600 {
// var dated = dated + 1
// }
$('#auctioncountdown').countdown({until: diff, format: 'HMS'});
});
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用setInterval
不断更新倒计时:
setInterval(function(){
// update countdown
}, 1000 * 60); // for every hour
setInterval
将导致您传入的函数每小时连续运行(在本例中)。
答案 1 :(得分:0)
我最终选择了更简单的东西,并最终实现了我原来的要求,现在使用'而不是特定的日期。让计时器每小时重置一次,并刷新页面以更改内容。在我的情况下,我实际上添加了几分钟的时间,因为后台应用花了一两分钟的时间进行通信,用新信息更新服务器。它基本上是为了摆脱滞后时间,为页面访问者提供更好的用户体验。
这是我的代码:
$(document).ready(function() {
function ShowTime() {
var now = new Date();
var diff = -2;
var nowTwo = new Date(now.getTime() + diff*60000);
var mins = 59-nowTwo.getMinutes();
var secs = 59-nowTwo.getSeconds();
timeLeft = "" +mins+'m '+secs+'s';
$("#auctioncountdown").html(timeLeft);
if ($("#auctioncountdown").html() === "0m 1s") {
location.reload(true)
};
};
function StopTime() {
clearInterval(countdown);
}
ShowTime();
var countdown = setInterval(ShowTime ,1000);
});