当前位置: 首页 > 知识库问答 >
问题:

如何获得从特定日期/时间开始并每小时倒数的倒计时器

韩瀚
2023-03-14

我正在尝试实现一个倒计时计时器,它将使用一个特定的日期和时间开始。从那里,我需要它从1小时倒计时,然后更新最初的日期和时间,增加一个小时,然后无限期地重复自己。

这是用于一个产品拍卖,将得到一个新的产品,一旦一个售完,价格下降每小时从它添加到拍卖,可能是一天中的任何时间。

示例:

我需要这个计时器在2014,7,25,11,30,0,0开始(2014年8月25日美国东部时间上午11:30),它将倒计时1小时,完成后,它将增加一个小时的开始日期,使2014,7,25,12,30,0,0这将无限期地重复,直到我选择停止它。

它也不会根据网站访问者是否刷新页面而改变,这意味着他们访问该页面并看到剩余33分钟,而不是每次刷新都将其重新设置为1小时。

我打算使用这个倒计时器:http://keith-wood.name/countdown.html

我需要的是我以可变形式给它的时间。我试图尽可能多地研究这一点,没有任何运气,大多数是不够具体或只处理日期而不是时间。

我并不精通Javascript和jQuery;这是我到目前为止得到的。

请原谅我的代码,这里有很多想法在起作用:

$(document).ready(function() {
    var everyhour = new Date(); 
    //everyhour = new Date(everyhour.getFullYear() + 1, 1 - 1, 1);
    everyhour = 2014, 8-1, 25, 9, 30, 0, 0;
    // the above was my initial try and it wasn't getting me anywhere
    var date  = new Date(2014, 7, 25, 12, 0, 0);
    var now   = new Date();
    var diff  = date.getTime()/1000 - now.getTime()/1000;
    alert (diff);
    // The above was another stab at it, got me a little closer
    var minutesToAdd = 60;
    date.setMinutes(date.getMinutes()+minutesToAdd);
    // the above was something I found on this website and got brain block
   // the below was me trying to start a loop and get the date to update by adding an hour onto it
   //  for i 
   //  if diff = 3600 {
   //    var dated = dated + 1
   //  }
       $('#auctioncountdown').countdown({until: diff, format: 'HMS'});
});  

如有任何帮助,将不胜感激。

共有2个答案

丁豪
2023-03-14

最后我用了一些更简单的东西,并最终实现了我最初的要求,使用“现在”而不是一个具体的日期。每小时重置一个计时器并刷新页面以显示已更改的内容。在我的例子中,我实际上增加了几分钟的时间,因为一个后台应用程序需要一两分钟的时间来进行更新服务器的新信息的通信。基本上就是摆脱滞后时间,为页面访问者做出更好的用户体验。

下面是我的代码:

  $(document).ready(function() {        
    function ShowTime() {
        var now = new Date();
        var diff = -2;
        var nowTwo = new Date(now.getTime() + diff*60000);  
        var mins = 59-nowTwo.getMinutes();
        var secs = 59-nowTwo.getSeconds();
        timeLeft = "" +mins+'m '+secs+'s';
        $("#auctioncountdown").html(timeLeft);
        if ($("#auctioncountdown").html() === "0m 1s") {
          location.reload(true)
        };
    };
    function StopTime() {
        clearInterval(countdown);   
    }
    ShowTime();
    var countdown = setInterval(ShowTime ,1000);
  }); 
陶宜民
2023-03-14

可以使用setinterval连续更新倒计时:

   setInterval(function(){
      // update countdown
   }, 1000 * 60); // for every hour

setinterval将导致您传入的函数每小时连续运行一次(在本例中)。

 类似资料:
  • 我试图实现一个'日期'倒计时计时器使用Android类和Java从当前的一天,小时,分钟,秒到26十二月,2013 9:00 AM倒计时。下面是我的代码: 这里是我的类: 现在时、分、秒都没问题。只是天数来了40。现在我把日期定在这个月的26号,2013年。所以目前26 - 16 = 10天。这应该是显示的天数。那为什么显示40?请帮忙。谢谢大家。

  • 我试图使一个倒计时,显示总天数,小时,分钟和秒的剩余特定日期。 这就是我到目前为止所创造的。 我用过计时器,它用Console.WriteLine计数,但TextViews什么也不显示,也不更新...有人知道如何每秒钟更新TextViews吗?

  • 最初,我在这里找到了一个倒计时问题的部分答案 (“cymen”谢谢你的回答!) 如何防止倒计时在剩余时间内使用小数? 还有,如何使倒计时只表示一分钟内还剩几秒,一小时内还剩几分钟,等等,就像在这个网站上,恰好有我要倒计时的确切日期和时间.... http://50onfire.com/dc/一样。 http://50onfire.com/dc/ 以下是我将Cymen的代码编辑为: http://j

  • 问题内容: 我想知道是否有人可以帮助我。经过数小时的不懈搜索,在这里和网上我似乎找不到使用jquery的简单倒计时。我不想使用任何类型的插件,而只是简单的jquery代码来从日期倒数。我设法在下面找到此代码。但是即使将此代码放置在我的网站中,也不会显示任何内容。我从jquery.com添加了jquery文件,并添加了ID不包含任何内容的正确div 。如果有人可以解释或告诉我如何在采用日期格式并返回

  • 我有一个应用程序,有两个定时器开始他们的按钮点击。 当它们开始时,计时器倒计时显示在文本视图中,因此用户可以看到倒计时(10,9,8,7等) 一个计数器是45秒计时器,另一个是30秒计时器。我注意到,当计时器启动时,它们会以两种方式之一运行:计时器倒计时显示从正确的时间开始的秒数(然后跳过一个)45、43、42、41等,或者其他时间不显示开始值,直接跳到(44、43、42、41等),并且不会跳过任

  • 介绍 用于实时展示倒计时数值,支持毫秒精度。 引入 import { createApp } from 'vue'; import { CountDown } from 'vant'; const app = createApp(); app.use(CountDown); 代码演示 基础用法 time 属性表示倒计时总时长,单位为毫秒。 <van-count-down :time="time