javascript - 如何让倒计时适用于周一、周二和其他时间

标签 javascript

this post有人(royhowie)分享了一个计算每个星期日的js。这段代码运行良好,但是当我尝试通过将增量值从 7 更改为 2 或 1 使其在今天(当天)之后的几天(例如星期二、星期一)工作时,这显示计时器已完成。如何让它发挥作用?

var getNextSunday = function () {
    var today = new Date(),
        day = today.getDay(),	// 1 for Mon, 2 for Tue, 3 for Wed, etc.
        delta = 7 - day;

    var sunday = new Date(today.getTime() + (delta * 24 * 3600 * 1000));

    sunday.setHours(11);
    sunday.setMinutes(15);
    sunday.setSeconds(0);

    return sunday;
}

var t = getNextSunday(),
    p = document.getElementById("time"),
    timer;
var u = function () {
    var delta = t - new Date(),
        d = delta / (24 * 3600 * 1000) | 0,
        h = (delta %= 24 * 3600 * 1000) / (3600 * 1000) | 0,
        m = (delta %= 3600 * 1000) / (60 * 1000) | 0,
        s = (delta %= 60 * 1000) / 1000 | 0;
    
    if (delta < 0) {
        clearInterval(timer);
        p.innerHTML = "timer's finished!";
    } else {
        p.innerHTML = d + "d " + h + "h " + m + "m " + s + "s";
    }
}
timer = setInterval(u, 1000);
<h1 id="time"></h1>

已解决

@Reti43 先生,你是天才。非常尊重你。

最佳答案

这不是您要更改的数字 7,而是分配给日期的值:

现有代码:

day = today.getDay(),   // 1 for Mon, 2 for Tue, 3 for Wed, etc.

你想要:

day = 2,    // 1 for Mon, 2 for Tue, 3 for Wed, etc.

关于javascript - 如何让倒计时适用于周一、周二和其他时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34426414/

相关文章:

Chrome 中的 Javascript 调试 - 对象名称?

javascript - 如何在html中将一组整数乘以一个字符串?

javascript - 如何告诉 JSHint 在另一个 JS 文件中查找定义

javascript - 将 Google 云端硬盘内容流式传输到 Chromecast

javascript - javascript 中 if 语句被跳过

javascript - 在 WordPress 站点内使用 hubspot 表单时缺少 jquery

javascript - 加载/执行所有 JS 文件后,jQuery read() 是否会触发

javascript - 即使 AJAX 调用返回值也会发生 formatAjax 错误

javascript - 如何将数据属性值转换为对象数组

javascript - 有没有特殊的字符来防止ASI