如何让这个倒计时工作为周一,周二和其他时间
How To Make This Countdown Work For Monday, Tuesday and others
在这篇文章中,有人(royhowie)分享了一个每周日都会计算的js。这段代码运行得很好,但当我试图通过将delta值从7更改为2或1来使它在今天(当前日期)之后的几天(如星期二、星期一)运行时,这会显示Timer's Finished。如何使其发挥作用?
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>
已解决
@退休43绅士,你是天才。非常尊重你。
这不是要更改的数字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.
只需将delta = 7 - day;
更改为
delta = (8 - day) % 7;
解释
星期一的值为1,但这与1+7类似。
计算出8和今天日期之间的差值后,使用模来获得0和6之间的余数。
示例
今天是星期日:(8-0)%7=8%7=1,即离星期一还有一天。
今天是星期一:(8-1)%7=7%7=0,即离星期一还有0天。
这是一个棘手的问题。
与其减少"7",你必须添加到其中:
var getNextWeekday = function (nextDesirefWeekDay) {
var today = new Date(),
day = today.getDay(),
delta = 7 - day + nextDesirefWeekDay;
...
}
然后,在下一个desirefWeekDay中,您通过了您想要的一天:
0:周日1:星期一2:星期二…
我希望这能有所帮助。
相关文章:
- 在周一上午8点至晚上7点之间执行功能
- Javascript Cookie将于每周二到期
- 增加额外天数,但仅在工作日(周一至周五)并跳过周末
- jQuery UI 日期选择器 - 禁用公共假期、周末、第二天上午 10 点之后,只允许周二、周三和周四作为可选日期
- 我怎样才能在 javascript 中获取从周一到周日的上周日期
- JSON 数据 - 使用 Javascript/Jquery 按星期几(周日、周一、周二、周三、周四、周五、周六)分组
- 使用正则表达式验证使用 DD-周一-YYYY 格式的日期
- 使用当前日期生成一周的所有日期,并在周一显示周开始日期,在周日显示周末
- 如何在给定时间内找到周一
- HTML将日期动态更改为周一、周三或周五
- 如何让这个倒计时工作为周一,周二和其他时间
- 获取一个月的第一天名称(周一、周二)
- 对工作日的对象进行排序,如周日、周一、..,星期六
- document.周一-周六写这行代码,周日写这行码
- Javascript获取下周二或周五(最接近)的日期
- 显示明天的名字(如:周一)
- 检查给定日期是否在工作周内(周一至周五)
- 日期对象算法,用于返回最接近的每两周一天的日期