无法创建定时器从给定时间计数

时间:2014-06-19 13:22:50

标签: javascript

我需要一个时钟来计算特定时间。例如时间是20:08:00,然后从那里算。我已经搜索了高低的答案,没有人特别想出答案(我见过)。所以我的正常时钟是这样的。

<script type="text/javascript">
function clock() 
{
var digital = new Date();
var hours = digital.getHours();
var minutes = digital.getMinutes();
var seconds = digital.getSeconds();
if (minutes <= 9) minutes = "0" + minutes;
if (seconds <= 9) seconds = "0" + seconds;
dispTime = hours + ":" + minutes + ":" + seconds;
var basicclock = document.getElementById('basicclock');
basicclock.innerHTML = dispTime;
setTimeout("clock()", 1000);
}
clock();
</script>

所以我需要的是从20:08:00(或时间变量)开始的时间。我想知道是否更好地使用计时器来实现设定时间并从中计算???

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先:在提出问题之前,请尝试广泛搜索SO以获得答案,如果您查看,可以找到许多有用的回复。 ;)

如果您尝试倒计时某个时间/日期,我会建议找到答案 HERE

所有代码信用均转到作者的上述答案。 HTML - 用于显示

<span id="days"></span>
<span id="hours"></span>
<span id="minutes"></span>
<span id="seconds"></span>

脚本(保持格式化,只修改目标日期的第4行)

setInterval(function(){
    // set whatever future date / time you want here, together with
    // your timezone setting...
    var future = new Date("Sep 20 2014 21:15:00 GMT+0200");
    var now = new Date();
    var difference = Math.floor((future - now) / 1000);

    var seconds = fixIntegers(difference % 60);
    difference = Math.floor(difference / 60);

    var minutes = fixIntegers(difference % 60);
    difference = Math.floor(difference / 60);

    var hours = fixIntegers(difference % 24);
    difference = Math.floor(difference / 24);

    var days = difference;

    $("#seconds").text(seconds + "s");
    $("#minutes").text(minutes + "m");
    $("#hours").text(hours + "h");
    $("#days").text(days + "d");
}, 1000);

function fixIntegers(integer)
{
    if (integer < 0)
        integer = 0;
    if (integer < 10)
        return "0" + integer;
    return "" + integer;
}

<强> DEMO OF THE ABOVE CODE

我还会看一下这些帖子中的其他有趣解决方案 HERE