计数器具有一周中不同日期的不同设置

时间:2015-09-29 00:20:25

标签: javascript jquery

我需要一个计数器,根据星期几的不同,每个刻度的数字会增加不同的数字。 我找到了这个计数器:https://stackoverflow.com/a/3346311它正在计算我需要的方式,但现在我不知道如何根据星期几来改变INCREMENT值。 抱歉我的英语很差,希望问题是可以理解的。 此致

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

3 个答案:

答案 0 :(得分: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 :(得分:1)

Or you could do it like this

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

More concise, and no switch.

答案 2 :(得分: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引用它。我在页面加载时将count变量初始化为0。

在我的setInterval()循环结束时,我将count的结果添加到我的div中。循环每秒运行一次,由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