如何使用JavaScript进行计时器移动的第二个?

时间:2014-05-17 00:00:36

标签: javascript dom

此功能将显示日期和时间。至于它将显示为这种格式“00:00:00”的时间,但是“秒”不会仅移动静态。以下是代码:

function isDst(d) {
    var dst = 60; // DST on by default.

    // Up until March 9 switch off DST.
    if ((d.getMonth() < 3) && (d.getDate() < 10)) { dst = 0; }

    // After November 2 switch off DST.
    if ((d.getMonth() > 9) && (d.getDate() > 2)) { dst = 0; }

    return dst;
}

function init() {
    var panel = document.getElementById("panel");
    var now = new Date()  
    var offset = now.getTimezoneOffset();
    var dst = isDst(now);
    switch (offset) {
        case (300 - dst): offset = "East Coast"; break;
        case (360 - dst): offset = "Central"; break;
        case (420 - dst): offset = "Mountain"; break;
        case (480 - dst): offset = "Pacific"; break;
        default: offset = "all";
    }
    panel.innerHTML = "Date and Time: " + now.toString() + "<hr>Welcome to " + offset + " visitors";
}
document.addEventListener("DOMContentLoaded", init, false);

1 个答案:

答案 0 :(得分:1)

如果我正确理解您,您希望网站上的文字每秒更新一次。

您的脚本无法正常工作,因为您正在将#panel的innerHTML设置为使用当前时间创建的字符串。 HTML中没有任何内容告诉浏览器更新字符串。您必须在JavaScript中添加自己的代码。

最简单的方法是使用window.setInterval();功能。创建一个更新文本的函数,使其具有当前时间,然后调用window.setInterval(myFunc,1000)。请注意myFunc上没有括号。这意味着您将传递函数 myFunc而不是myFunc的返回值。第二个参数是在再次调用函数之前等待的毫秒数。如果你想使用setTimeout调用myFunc,window.setInterval每1000毫秒调用一次myFunc。

将所有这些结合在一起,为了使你的脚本工作,你需要添加这一行:

window.setInterval(init, 1000);

享受!