我在我的网络应用中使用this jquery plugin来计算时间。请帮助我保持倒数时间不是每次都开始。我想设定一个月的续约(30天24小时60分60秒)。所以每次刷新倒计时都不应该开始从一开始 .Thnx
这是设置时间的脚本代码
$('#counter').countdown({
timestamp : (new Date()).getTime() + 30*24*60*60*1000
});
答案 0 :(得分:2)
每个人都需要相同的结束时间吗?例如,如果您想在2014年3月5日东部时间下午5点启动您的网站,那么您希望设置启动时间如下:
var ts = new Date(Date.UTC(2014, 2, 7, 22))
$('#counter').countdown({
timestamp : ts
});
或者,如果每个用户都需要查看唯一的倒计时,那么您希望将时间保留在cookie中。例如,如果我在打开页面后5分钟打开页面。计时器应该相隔5分钟吗?如果是,则使用cookie。如果没有,我们的两个计时器应该相同,那么将所需的结束日期传递给计数器。
注意:如果时区对您很重要,则设置UTC。
答案 1 :(得分:1)
如果您需要持久性,而不是在javascript中创建新的日期对象,请从后端传递日期,该日期应在您第一次开始倒计时时保存。
答案 2 :(得分:1)
var today = new Date()
var enddate = new Date(2014,05,01)
function calcDate(date1,date2) {
var datadiff = Math.abs(date1 - date2) / 1000;
// calculate (and subtract) whole days
var days = Math.floor(datadiff / 86400);
datadiff -= days * 86400;
// calculate (and subtract) whole hours
var hours = Math.floor(datadiff / 3600) % 24;
datadiff -= hours * 3600;
// calculate (and subtract) whole minutes
var minutes = Math.floor(datadiff / 60) % 60;
datadiff -= minutes * 60;
// what's left is seconds
var seconds = Math.floor(datadiff % 60);
var message = " ";
message += days + " days " ;
message += hours + " hours ";
message += minutes + " minutes \n";
message += seconds + " seconds \n";
return message
}
a = calcDate(enddate,today);
alert(a);
答案 3 :(得分:1)
有很多方法可以保留数据。一种方法可能是将日期存储到cookie中。
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
date = getCookie('date');
if(!date) {
document.cookie="date=" + new Date().getTime() + 30*24*60*60*1000 + ";";
date = getCookie('date');
}
alert(date);
这应该可以帮助您在浏览器刷新之间保持日期,但只有在Cookie持续时才会有效。