我们在设置倒数计时器以在几个小时后自动重置时遇到问题。此外,我们需要设置计时器,使其不基于客户端本地时间。我们在 Business Catalyst 上托管该站点,该站点不包括服务器端语言,因此我需要严格使用 javascript 来锁定服务器时间。这是我们目前用于网站的倒数计时器。
http://www.littlewebthings.com/projects/countdown/
至于我们遇到的自动重置问题,我认为我们可以使用 later.js 设置循环调度变量
http://bunkat.github.io/later/
我已经设置了变量,我只是不知道如何向它添加重置功能。
<script type="text/javascript">
var sched = later.parse.text('on the first day of the week at ');
t = later.setInterval(test, sched),
count = 5;
function test() {
console.log(new Date());
count--;
if(count <= 0) {
t.clear();
}
}
</script>
function reset() {
$('#countdown_dashboard').stopCountDown();
$('#countdown_dashboard').setCountDown({
targetOffset: {
'day': 7,
'month': 0,
'year': 0,
'hour': 9,
'min': 0,
'sec': 0
}
});
$('#countdown_dashboard').startCountDown();
}
<script language="javascript" type="text/javascript">
jQuery(document).ready(function() {
$('#countdown_dashboard').countDown({
targetDate: {
'day': 15,
'month': 6,
'year': 2014,
'hour': 11,
'min': 10,
'sec': 0
},
// onComplete function
onComplete: function() {
$('#complete_info_message').slideDown(),
$('#countdown_dashboard').addClass('ended');
},
omitWeeks: true
});
});
</script>
我认为使用 later.js,我们可以使用 targetOffset 设置倒计时,以便完整的消息在一周后触发,或者以某种方式在 targetDate“天”区域添加 7 天,而不会放置像 40 这样的奇怪数据。