JavaScript 每 15 分钟计算一个值并在午夜重置它

标签 javascript setinterval

我正在尝试计算一个值,从午夜开始,每 15 分钟计算一次,并在午夜将该值重置为 0。

这个想法是每分钟检查一次时间,并在午夜 (00:00) 设置 15 分钟的新间隔来进行计算。

我正在使用这个:

setInterval(function() { 
    var date = new Date(); 

    if(date.getHours() == 0 && date.getMinutes() == 0){ 
       setInterval(calcFunction, 900000);
    }
}, 60000);

var calcFunction = function() { 
    var myValue = 0;

    if(date1.getHours() == 0 && date1.getMinutes() == 0) {// Check for midnight
        myValue = 0;        // resets value
    } else {
        myValue=myValue + Math.random();  
    }

    console("Value: " + myValue);
};

问题是这不能正常工作。该值每分钟计算一次,每 4 天重置一次。

最佳答案

让函数每刻钟(00、15、30、45)调用一次的更简单方法是使用 %(模)运算符:

setInterval(function() { 
    var date = new Date(); 

    if((date.getMinutes() % 15) === 0){ 
       calcFunction();
    }
}, 60000);

此外,您的 calcFunction 正在函数内设置 myValue = 0,这意味着每次调用它时都会将其重置为零,您可能想要移动它在函数之外。

关于JavaScript 每 15 分钟计算一个值并在午夜重置它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48101026/

相关文章:

javascript - 设置间隔延迟

javascript - 为什么 javascript 在我的选择选项上看不到 "selected"属性?

javascript - Sencha Touch 2布局: Fit inner content

JavaScript 数组从索引中删除元素

javascript - 如何正确排序整数数组

javascript - 检查子 li 元素数量的 Angular 指令

javascript - setInterval 不继续

javascript - javascript 的 setInterval() 方法运行是否会随着时间的推移消耗明显的处理能力?

javascript - 如何将动态参数传递给setInterval函数?