js定时器,实现每天早上9点执行代码片段,完整代码
1.hour:小时,minute:分钟,callTask:函数
function setScheduledTask(hour, minute, callTask) {
let taskTime = new Date();
taskTime.setHours(hour);
taskTime.setMinutes(minute);
let timeDiff = taskTime.getTime() - (new Date()).getTime(); // 获取时间差
timeDiff = timeDiff > 0 ? timeDiff : (timeDiff + 24 * 60 * 60 * 1000);
setTimeout(function() {
callTask(); // 首次执行
//1为一小时执行一次,24为一天
setInterval(callTask, 1 * 60 * 60 * 1000); // 24小时为循环周期
}, timeDiff);
}
//doTask为callTask方法
function doTask(){
var data = {};
$.ajax({
url: '/excel/download',
data: data,
success: function (result) {
console.log('发送成功');
},
error: function () {
console.log('发送失败');
}
});
return false;
}
- //执行代码
setScheduledTask(15, 16, doTask);