如何计算实际时间和显示倒计时之间的差异?

时间:2014-03-13 06:23:17

标签: javascript html function time

我想显示两次之间的差异。

第一次是我可以显示的实际时间:

window.setInterval("timefunc()",1000);
    function timefunc(){
        d = new Date ();
        h = (d.getHours () < 10 ? '0' + d.getHours () : d.getHours ());
        m = (d.getMinutes () < 10 ? '0' + d.getMinutes () : d.getMinutes ());
        s = (d.getSeconds () < 10 ? '0' + d.getSeconds () : d.getSeconds ());

        document.getElementById("time").innerHTML = 
        + h + ':' + m + ':' + s;
    }

现在我想扩展这个功能。第二次是每天晚上8点一样。

现在例如下午6:30。在这里,我想显示剩下的倒计时时间。在这种情况下,例如:“剩下的时间:1:29:59”。当时间到了,应该重新加载页面。

我是Javascript的新手,并没有找到任何地方的例子。

如果有人可以帮助我,我真的很感激。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下方式在晚上8:00(20:00)创建日期对象:

var d = new Date();
d.setHours(20,0,0,0);

要查找两个日期之间的差异(以毫秒为单位),只需从另一个中减去一个:

var ms = d - new Date();

要转换为hh:mm:ss:

var hours = ms / 3.6e6 | 0;
var mins  = (ms % 3.6e6) / 6e4 | 0;
var secs  = (ms % 6e4) / 1e3 | 0;

要填充一位数字:

function pad(n) {return (n<10? '0':'') + n;}

并格式化输出:

pad(hours) + ':' + pad(mins) + ':' + pad(secs);

也许你希望倒计时在晚上8点后打勾。在这种情况下,只需检查当前日期是否在晚上8点之后。如果是,只需在晚上8点的日期对象的日期添加一个:

var d = new Date();
d.setHours(20,0,0,0);
var now = new Date();

if (d < now) d.setDate(d.getDate() + 1);

因此,如果现在是在晚上8点(20:00)之后, d 明天是晚上8点。