Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较给定时间和当前时间的多个倒计时计时器?_Javascript_Html_Timer_Countdown - Fatal编程技术网

Javascript 比较给定时间和当前时间的多个倒计时计时器?

Javascript 比较给定时间和当前时间的多个倒计时计时器?,javascript,html,timer,countdown,Javascript,Html,Timer,Countdown,因为某种原因,我真的在为这部分而挣扎 我正在创建一个计时器,我可以用来跟踪出价。我希望能够比较两次,并在倒计时列中显示差异(以分钟和秒为单位)。它应该比较投标开始时间和现在的时间 也许当它到达投标开始时,它也可以改变以显示距离投标结束还有多长时间。最后,我想在接近时间时添加背景更改,也许可以通过提示窗口设置警报 以下是我目前掌握的代码: HTML 我提前道歉,因为我的代码可能真的很混乱,格式也很糟糕。这里还有一个!谢谢:)要计算当前时间和给定时间之间的差值,可以使用setInterval 例如:

因为某种原因,我真的在为这部分而挣扎

我正在创建一个计时器,我可以用来跟踪出价。我希望能够比较两次,并在倒计时列中显示差异(以分钟和秒为单位)。它应该比较投标开始时间和现在的时间

也许当它到达投标开始时,它也可以改变以显示距离投标结束还有多长时间。最后,我想在接近时间时添加背景更改,也许可以通过提示窗口设置警报

以下是我目前掌握的代码:

HTML


我提前道歉,因为我的代码可能真的很混乱,格式也很糟糕。这里还有一个!谢谢:)

要计算当前时间和给定时间之间的差值,可以使用
setInterval

例如:

var noticeTime = noticeField.value.split(":");
    const interval = setInterval(function(){
      var currentDate = (new Date());
      var diffInHours = currentDate.getHours() - noticeTime[0];
      var diffInMinutes = currentDate.getMinutes() - noticeTime[1];
      inp5.innerHTML = diffInHours + ":" + diffInMinutes;
      if(diffInHours === 0 && diffInMinutes === 0) {
        clearInterval(interval);
      }
    },1000)

我在ProgXx代码的帮助下成功地做到了这一点

我添加了以下代码:

var noticeTime = noticeField.value.split(":");
var originalTime = noticeField.value.split(":");
const interval = setInterval(function(){
  var currentDate = (new Date());
  noticeTime[1] = originalTime[1] - currentDate.getMinutes() + 10;
  noticeTime[1] = noticeTime[1] + (originalTime[0] * 60) - (currentDate.getHours() * 60);

这里有一段JSFIDE代码:

我已经尝试过使用它,但由于“noticeField.value.split”的原因,让它做我想做的事情似乎非常混乱和尴尬。。。。我觉得最好将noticeField时间转换为秒,然后计算出它们之间的差异。虽然只有一个
Date
对象可以用来获取毫秒的差值,但我们需要将小时和分钟转换为毫秒。这需要我们付出更多的努力和计算,这就是为什么我们提出上述解决方案的原因。如果你能找到其他方法来解决这个问题,请告诉我。我尝试过这个方法,但计算结果完全错误,我不知道为什么。太困惑了<代码>变量noticeTimeMinutes=(noticeTime[0]*60)+noticeTime[1]+5;var currentTimeMinutes=(currentDate.getHours()*60)+currentDate.getMinutes();var diffTotalMinutes=(noticeTimeMinutes-currentTimeMinutes)通过执行
noticeField.step()
函数,您已经修改了
noticeField
值。因此,如果你需要原始时间,你应该先将它存储在不同的值中。嗯,我认为这不是问题所在。。升级只增加了15分钟的通知时间,我需要的投标开始时间无论如何,这就是为什么我增加了5分钟的时间来抵消升级。我甚至完全放弃了这一步,但仍然有问题。我得到的价值是超过500000分钟,而实际上只有10分钟的路程。不知道怎么办。。
var noticeTime = noticeField.value.split(":");
    const interval = setInterval(function(){
      var currentDate = (new Date());
      var diffInHours = currentDate.getHours() - noticeTime[0];
      var diffInMinutes = currentDate.getMinutes() - noticeTime[1];
      inp5.innerHTML = diffInHours + ":" + diffInMinutes;
      if(diffInHours === 0 && diffInMinutes === 0) {
        clearInterval(interval);
      }
    },1000)
var noticeTime = noticeField.value.split(":");
var originalTime = noticeField.value.split(":");
const interval = setInterval(function(){
  var currentDate = (new Date());
  noticeTime[1] = originalTime[1] - currentDate.getMinutes() + 10;
  noticeTime[1] = noticeTime[1] + (originalTime[0] * 60) - (currentDate.getHours() * 60);