每小时循环到明天的同一小时

时间:2014-06-07 19:16:30

标签: javascript for-loop

我希望从当前时间和提前24小时(今晚21:00至明天21:00)获得每小时。下面的循环只循环到24。

var i;
var date = new Date;
var hours = date.getHours();

for(i = hours; i <= 24; i++) {
    console.log(i);
}

我该怎么做才能做到这一点?

演示:http://jsfiddle.net/edgren/64XDf/

3 个答案:

答案 0 :(得分:5)

使用模运算

for(i = 0; i <= 24; i++) {
    console.log((i+hours)%24);
}

小时0显示24:

for(i = 0; i <= 24; i++) {
    var h = (hours+i)%24;
    if (h == 0) h = 24;
    console.log(h);
}

答案 1 :(得分:1)

这是否符合您的要求?

var i;
var date = new Date;
var hours = date.getHours();

for(i = hours; i <= hours+24; i++) {
    if(i<25){
        console.log(i);
    }else{
        console.log(i-24);
    }
}

Updated fiddle

答案 2 :(得分:1)

您的结束条件已由hours关闭,您需要调整24小时限制。一种解决方案就是这样做,

var date = new Date;
var hours = date.getHours();

for (var i = hours; i <= hours+24; i++) {
  console.log((i > 23) ? i - 24 : i);
}

更新了fiddle