2015-09-29 32 views
-3
一周

不同的日子不同的设置,我需要一个计数器,将计数数字与根据一周的每一天不同的滴答增加。 我发现这个计数器:https://stackoverflow.com/a/3346311这是计数我需要的方式,但现在我不知道如何使它改变INCREMENT值取决于星期几。 对不起,我可怜的英语,希望问题是可以理解的。 问候计数器与

非常感谢球员对所有的答案,我非常深刻的印象。

+2

'新的Date()。getDay()'会给你一周(0-6)的日子。 –

+0

@RichardHamilton谢谢你的解决方案,这就是我要找的。还有一个问题,如果增量是相同的,我可以在工作日使用数组吗? – keramzyt

+0

还有一个问题:我能否让这个柜台在3个月前回答问题的方式? – keramzyt

回答

0

你应该使用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,这是循环应该运行的毫秒数。你可以改变它为任何你喜欢的。

我刚刚创建了一个小提琴

http://jsfiddle.net/3nawhmdf/

如果您想了解更多DRY的代码,你可以尝试这样的事情。

var date = document.getElementById("date"); 

var count = 0; 

setInterval(function() {   
    count += (new Date().getDay() + 1); 
    date.innerHTML = count; 
},1000); 

幸得bonesbrigade此解决方案

+1

为什么不选择简明:'count + = new Date()。getDay()+ 1;' – bonesbrigade

+1

不错,不能相信我错过了那一个。加1 –

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; 
} 
1

或者你可以做这样的

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()) 

更简洁,没有开关。

+1

是的,这是一个很好的做法,我只是想让它尽可能清晰。 ;) –

+0

@MarcosCasagrande,Titus Popovici - 谢谢你的回答。 – keramzyt