【问题标题】:Jquery countdown On ExpiryJquery倒计时到期
【发布时间】:2015-07-30 14:46:20
【问题描述】:

我需要一些帮助。我在页面上放置了一个 jquery 倒数计时器。我正在使用的倒计时是http://keith-wood.name/countdown.html 我需要的是当一个倒计时到期时,它会倒计时到另一个日期。例如,它将倒计时到 2015 年 1 月 8 日。当它到达 1/08/2015 时,我希望它倒计时到另一个日期。因此,从 2015 年 1 月 8 日开始,它将倒计时到 2015 年 8 月 5 日。我希望这是有道理的。我已经成功地将倒计时本身放在页面上。这只是我遇到问题的到期日。

这是示例中的脚本。

<script>
    $(function () {
        var austDay = new Date();
        austDay = new Date(2015, 11 - 1, 7);
        $('#defaultCountdown').countdown({until: austDay});
        $('#year').text(austDay.getFullYear());
    });
</script>

显示在这个标签里

<center><div id="defaultCountdown"></div></center>

我已经为此付出了努力。这是我所能做到的,但也是我能做到的。任何帮助将不胜感激

$(function () {
    var austDay = new Date();
    FirstDay = new Date(2015, 11 - 1, 7);
    SecondDay = new Date (2015, 11 - 1, 9);
    $('#defaultCountdown').countdown({until: FirstDay});
});

应该提到一共有4个日期倒计时!

【问题讨论】:

  • 在伪代码中你需要的是:if (today &gt; FirstDay) $('#defaultCountdown').countdown({until: SecondDay}); else $('#defaultCountdown').countdown({until: FirstDay});
  • $(function () { var austDay = new Date(); FirstDay = new Date(2015, 7 - 1, 31, 11, 30); SecondDay = new Date(2015, 11 - 1 , 9); $('#defaultCountdown').countdown({ until: FirstDay }); }); var 今天 = 新日期(); if (今天 > FirstDay) $('#defaultCountdown').countdown({until: SecondDay}); else $('#defaultCountdown').countdown({until: FirstDay});
  • 我已经尝试将它包含在我的代码中,但当它达到 0 时它仍然什么都不做。
  • 那是因为您只是在页面加载时检查日期与第一个日期
  • 那么我需要更新功能吗?我不太擅长 Javascript。我有点新手。感谢您的帮助,谢谢

标签: javascript jquery countdown


【解决方案1】:

您有onExpiry 可以利用的事件,下面只是一个示例,您可以如何做!不确定它是否有效!可能你必须反复试验。

先设置一个全局变量,以便在计数完成后检查:

var count=0;

$(function () {
    var austDay = new Date();
    austDay = new Date(2015, 11 - 1, 7);
    $('#defaultCountdown').countdown({until: austDay,onExpiry: liftOff});
    $('#year').text(austDay.getFullYear());
});

function liftOff() { 
     if(count==0)
     {
        $('#defaultCountdown').countdown({until: newDate});
        count=1;
     }
     else
        count=0;
}

您可以找到选项here


更新

好的,只需照原样复制并粘贴下面的代码!!

经过测试

DEMO HERE

var count=0; //a global variable

$(function () {
    shortly = new Date(); 
    shortly.setSeconds(shortly.getSeconds() + 5.5); //for time being this will run for 5 seconds
    $('#defaultCountdown').countdown({until: shortly,onExpiry: liftOff}); 
});

function liftOff() { 
//function that gets called on expiry
   if(count==0) //check already done 2nd time, if not get in
   {
        shortly = new Date(); 
        shortly.setSeconds(shortly.getSeconds() + 5.5); //again do it for 5 secs
        $('#defaultCountdown').countdown('option',{until: shortly});
        //set an option here for the same counter again
        count=1; //make this 1
   }
   else
       count=0;
}

上面的代码出现在javascript 部分的末尾 上面给出的演示

【讨论】:

  • 您好,感谢您的回复。当倒计时达到 0 时,没有任何反应。你能帮我做到吗,这样当它达到 0 时,它将开始另一个设定日期的倒计时。这就是我正在努力解决的问题。
  • 我要给你看什么代码?这是我遇到问题的实际脚本。 CSS 只是设计。 html 仅在页面上显示它。它的实际脚本。谢谢
  • 倒计时5秒真是太好了哈哈。我无法得到日期来使用它,尽管当我将日期替换到脚本中时它出现了错误。所以 30 分钟实际上应该只有 1 分钟
  • @Sootai 那只是一个演示!你必须根据你的需要改变!看到这个 DEMO.. 我在开头评论了一个日期部分!这些解决方案我不能保持很长时间并等待它完成,检查它的工作与否!你必须照顾好这个..
  • 当我更改日期然后刷新页面时,计数器再次从头开始。我真的很茫然。
【解决方案2】:

将日期与当前日期进行比较呢?

var today = new Date();
if(today<FirstDay){
    $('#defaultCountdown').countdown({until: FirstDay});
}
else if(today<=SecondDay){
    $('#defaultCountdown').countdown({until: SecondDay});
}

我不想在这里强制执行我的逻辑,这个概念是将日期与当前日期进行比较。但是,除非客户端计算机设置为正确的时间并具有相同的时区,否则这种方法不会完美地工作,或者它将对每个客户端有不同的输出。我更喜欢在服务器端进行比较。 编辑 我改变了它,以便第二个计数器在第一个计数器之后开始

【讨论】:

  • 谢谢你的帮助,我同意你的逻辑。这似乎是最好的方法,但它不起作用。当倒计时到达 0 时,它保持为零,不会更改为第二个日期。
  • 好吧,我正在编写概念代码,使用
  • if(today
  • 我看到你只用了一个'=',还是不行。
  • 还需要再增加 2 个计数器。总共 4 个。
猜你喜欢
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多