结束时如何重新初始化计时器?
How to reinit timer when it end?
大家好!在我使用 this timer 的网站上,但我不明白结束时我需要做什么。当计时器结束时,它应该在接下来的 14 天内重新启动。
您可能会建议一些书籍,我可以在其中阅读有关我的问题的信息,或者只是在 js 中阅读 Date() 。
谢谢!
这个插件有一个 回调 选项,一旦你的定时器结束就会被调用:
$('#countdown').timeTo({
timeTo: new Date(new Date('Sat Apr 25 2015 09:00:00 GMT+0200')),
displayDays: 2,
theme: "black",
displayCaptions: true,
fontSize: 48,
captionSize: 14,
// important part
callback: function(){
alert('Timer ended');
}
});
当您想跟踪用户的过期时间时,可以使用 localStorage-API 来完成此操作。
启动过期计时器:
通过使用 localStorage.This 功能 returns 用户首次访问您网站的开始日期,创建一个功能来跟踪用户的到期日期。此日期用于确定用户是否已将过期时间延长 14 天,但进一步的详细信息如下:
function handleUserDate(expireInDays){
var now = new Date();
var startDate = localStorage.getItem('timerStartDate');
// has user already visited your site?
if(startDate){
// is user'date expired?
startDate = new Date(Number(startDate));
var futureDate = new Date(startDate.getTime()+expireInDays*(1000*60*60*24));
if(now.getTime() < futureDate.getTime()){
console.log('in future');
return startDate;
}
}
console.log('in past');
localStorage.setItem('timerStartDate', now.getTime());
return now;
}
下一个函数用于激活计时器并将剩余的天数放入 timeTo 选项:
function startTimer(inDays){
var now = new Date();
var futureDate = new Date(now.getTime()+inDays*(1000*60*60*24));
console.log(futureDate);
$('#countdown').timeTo({
timeTo: futureDate,
displayDays: 2,
theme: "black",
displayCaptions: true,
fontSize: 48,
captionSize: 14,
callback: function(){
alert('Timer ended');
var daysInFuture = 14;
startTimer(daysInFuture);
}
});
}
计算开始日期和现在之间天数时差的函数:
function getTimeDiff(date, date2, diff){
return Math.abs(date.getTime()-date2.getTime())/diff;
}
放在一起:
var expireinDays = 14;// 14 day max
var startDate = handleUserDate(expireinDays);
console.log(startDate);// returns date of the very first time or when already expired it returns current date
var now = new Date();
var dayInMill = 1000*60*60*24;
var dayDifference = getTimeDiff(startDate,now,dayInMill);
dayDifference = expireinDays - dayDifference;
console.log(dayDifference); // days left
startTimer(dayDifference); // show timer
大家好!在我使用 this timer 的网站上,但我不明白结束时我需要做什么。当计时器结束时,它应该在接下来的 14 天内重新启动。 您可能会建议一些书籍,我可以在其中阅读有关我的问题的信息,或者只是在 js 中阅读 Date() 。 谢谢!
这个插件有一个 回调 选项,一旦你的定时器结束就会被调用:
$('#countdown').timeTo({
timeTo: new Date(new Date('Sat Apr 25 2015 09:00:00 GMT+0200')),
displayDays: 2,
theme: "black",
displayCaptions: true,
fontSize: 48,
captionSize: 14,
// important part
callback: function(){
alert('Timer ended');
}
});
当您想跟踪用户的过期时间时,可以使用 localStorage-API 来完成此操作。
启动过期计时器:
通过使用 localStorage.This 功能 returns 用户首次访问您网站的开始日期,创建一个功能来跟踪用户的到期日期。此日期用于确定用户是否已将过期时间延长 14 天,但进一步的详细信息如下:
function handleUserDate(expireInDays){
var now = new Date();
var startDate = localStorage.getItem('timerStartDate');
// has user already visited your site?
if(startDate){
// is user'date expired?
startDate = new Date(Number(startDate));
var futureDate = new Date(startDate.getTime()+expireInDays*(1000*60*60*24));
if(now.getTime() < futureDate.getTime()){
console.log('in future');
return startDate;
}
}
console.log('in past');
localStorage.setItem('timerStartDate', now.getTime());
return now;
}
下一个函数用于激活计时器并将剩余的天数放入 timeTo 选项:
function startTimer(inDays){
var now = new Date();
var futureDate = new Date(now.getTime()+inDays*(1000*60*60*24));
console.log(futureDate);
$('#countdown').timeTo({
timeTo: futureDate,
displayDays: 2,
theme: "black",
displayCaptions: true,
fontSize: 48,
captionSize: 14,
callback: function(){
alert('Timer ended');
var daysInFuture = 14;
startTimer(daysInFuture);
}
});
}
计算开始日期和现在之间天数时差的函数:
function getTimeDiff(date, date2, diff){
return Math.abs(date.getTime()-date2.getTime())/diff;
}
放在一起:
var expireinDays = 14;// 14 day max
var startDate = handleUserDate(expireinDays);
console.log(startDate);// returns date of the very first time or when already expired it returns current date
var now = new Date();
var dayInMill = 1000*60*60*24;
var dayDifference = getTimeDiff(startDate,now,dayInMill);
dayDifference = expireinDays - dayDifference;
console.log(dayDifference); // days left
startTimer(dayDifference); // show timer