不同的日子不同的设置,我需要一个计数器,将计数数字与根据一周的每一天不同的滴答增加。 我发现这个计数器:https://stackoverflow.com/a/3346311这是计数我需要的方式,但现在我不知道如何使它改变INCREMENT值取决于星期几。 对不起,我可怜的英语,希望问题是可以理解的。 问候计数器与
非常感谢球员对所有的答案,我非常深刻的印象。
不同的日子不同的设置,我需要一个计数器,将计数数字与根据一周的每一天不同的滴答增加。 我发现这个计数器:https://stackoverflow.com/a/3346311这是计数我需要的方式,但现在我不知道如何使它改变INCREMENT值取决于星期几。 对不起,我可怜的英语,希望问题是可以理解的。 问候计数器与
非常感谢球员对所有的答案,我非常深刻的印象。
你应该使用setInterval()
这一点。并且在你的功能块中,声明一些条件,在这里你根据星期几增加一个不同的值。
要找到星期,使用new Date().getDay()
方法,这将是从0到6返回一个数字,根据一天。
var date = document.getElementById("date");
var count = 0;
setInterval(function() {
if (new Date().getDay() === 0) { // On Sunday's, increment by 1
count += 1;
}
else if (new Date().getDay() === 1) { // On Monday's, increment by 2
count += 2;
}
else if (new Date().getDay() === 2) { // On Tuesday's, increment by 3
count += 3;
}
else if (new Date().getDay() === 3) { // On Wednesday's, increment by 4
count += 4;
}
else if (new Date().getDay() === 4) {
count += 5;
}
else if (new Date().getDay() === 5) {
count += 6;
}
else {
count += 7;
}
date.innerHTML = count;
},1000);
让我来解释一下上面的代码。
我有一个id为date
的空段落,我通过document.getElementById
来引用它。我在页面加载时将计数变量初始化为0。
在我setInterval()
循环结束时,我添加的count
结果我的股利。循环每秒运行一次,表示为1,000
,这是循环应该运行的毫秒数。你可以改变它为任何你喜欢的。
我刚刚创建了一个小提琴
如果您想了解更多DRY的代码,你可以尝试这样的事情。
var date = document.getElementById("date");
var count = 0;
setInterval(function() {
count += (new Date().getDay() + 1);
date.innerHTML = count;
},1000);
幸得bonesbrigade此解决方案
为什么不选择简明:'count + = new Date()。getDay()+ 1;' – bonesbrigade
不错,不能相信我错过了那一个。加1 –
Date.getDay()
返回从0开始的一周中的当前日(星期日)
var INCREMENT;
var dayOfWeek = new Date().getDay();
switch(dayOfWeek){
case 0: //Sunday
INCREMENT = 2; //Add your number
break;
case 1: //Monday
INCREMENT = 3; //Add your number
break;
//...
case 6: //Saturday
INCREMENT = 5; //Add your number
break;
}
或者你可以做这样的
var daysToIncrementValues = {0: 5, 1:4, 2:3, 3:2, 4:1, 5:9, 6:7} // the values assigned are random here, you can assign whatever value
var todaysIncrementValue = dayToIncrement(new Date().getDay())
更简洁,没有开关。
是的,这是一个很好的做法,我只是想让它尽可能清晰。 ;) –
@MarcosCasagrande,Titus Popovici - 谢谢你的回答。 – keramzyt
'新的Date()。getDay()'会给你一周(0-6)的日子。 –
@RichardHamilton谢谢你的解决方案,这就是我要找的。还有一个问题,如果增量是相同的,我可以在工作日使用数组吗? – keramzyt
还有一个问题:我能否让这个柜台在3个月前回答问题的方式? – keramzyt