我的网站倒计时,我想让它倒计时到下周日11:00 A.M,当它的星期日11:01 A.M我想让它自动倒计时到下周日11:00 A.M.我希望每个月重复一次......
我有这个脚本,但似乎不能让它工作,有人可以帮助我吗?
提前致谢
这是我的HTML ...
<div class="eventtd">
<div class="nextevt">Next Service Start In:</div>
<div class="time" contents="2" rel="1374397200">
</div> <!-- end time -->
这是我使用的脚本,截至目前,当它达到0时,它继续变为负值而不是重置。
jQuery(document).ready(function($) {
if (timerhelp == 'yes') {
var init = setInterval(animation, 100);
}
function animation(){
var deadline1 = $('.time').attr('rel');
var deadline2 = $('.time').attr('contents');
var now = new Date();
now = Math.floor(now / 1000);
now = now + Math.floor(deadline2 * 60 * 60);
var counter1 = deadline1 - now;
var seconds1=Math.floor(counter1 % 60);
if (seconds1 < 10 && seconds1 > 0 ){
seconds1 = '0'+seconds1;
}
counter1=counter1/60;
var minutes1=Math.floor(counter1 % 60);
if (minutes1 < 10 && minutes1 > 0){
minutes1 = '0'+minutes1;
}
counter1=counter1/60;
var hours1=Math.floor(counter1 % 24);
if (hours1 < 10 && hours1 > 0){
hours1 = '0'+hours1;
}
counter1=counter1/24;
var days1=Math.floor(counter1);
if (days1 < 10 && days1 > 0){
days1 = '0'+days1;
}
$('.time').html('<table><tbody><tr><th class="day">'+days1+'</th><th class="day">'+hours1+'</th><th class="day">'+minutes1+'</th><th class="day">'+seconds1+'</th></tr><tr><th>Days</th><th>Hours</th><th>Min</th><th>Sec</th></tr></tbody></table>');
}
});
答案 0 :(得分:1)
这段代码应该总是给你下个星期天:
var now = new Date();
var sunday = new Date();
sunday.setDate(now.getDate() - now.getDay()); // Make Sunday
sunday.setHours(11); // Set 11am
sunday.setMinutes(0);
sunday.setSeconds(0);
sunday.setMilliseconds(0);
if (sunday < now) sunday.setDate(sunday.getDate() + 7); // Make sure it's future
millisecondsLeft = sunday - now;
如果sunday < now
,您可以检查每次传递,如果是,则重新计算sunday
。
(如果有人想知道,如果你在星期天下午计算sunday
,那么“确定它的未来”行应该触发......)
答案 1 :(得分:0)
尝试添加:
var timerhelp = 'yes';
jQuery(document).ready(function($) {
nextSunday();
if (timerhelp == 'yes') {
var init = setInterval(animation, 900); // did change to 900, no need to calculate it more than once a second :)
}
function animation(){
var deadline1 = $('.time').attr('rel');
var deadline2 = $('.time').attr('contents');
var now = new Date();
now = Math.floor(now / 1000);
now = now + Math.floor(deadline2 * 60 * 60);
var counter1 = deadline1 - now;
var seconds1=Math.floor(counter1 % 60);
if (seconds1 < 10 && seconds1 > 0 ){
seconds1 = '0'+seconds1;
}
counter1=counter1/60;
var minutes1=Math.floor(counter1 % 60);
if (minutes1 < 10 && minutes1 > 0){
minutes1 = '0'+minutes1;
}
counter1=counter1/60;
var hours1=Math.floor(counter1 % 24);
if (hours1 < 10 && hours1 > 0){
hours1 = '0'+hours1;
}
counter1=counter1/24;
var days1=Math.floor(counter1);
if (days1 < 10 && days1 > 0){
days1 = '0'+days1;
}
if(days1<0&&hours1<0&&minutes1<0&&seconds1<0){
nextSunday();
}
$('.time').html('<table><tbody><tr><th class="day">'+days1+'</th><th class="day">'+hours1+'</th><th class="day">'+minutes1+'</th><th class="day">'+seconds1+'</th></tr><tr><th>Days</th><th>Hours</th><th>Min</th><th>Sec</th></tr></tbody></table>');
}
});
function nextSunday(){
var now = new Date().getTime() / 1000; // time in seconds;
var rel = $('.time').attr('rel');
if(parseInt(now)>parseInt(rel)){
var n = parseInt(rel)
while(n<parseInt(now)){
n = n+604800;
}
$('.time').attr('rel',n);
}
}