ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js实现每日定时任务

2021-09-29 12:02:51  阅读:227  来源: 互联网

标签:整点 每日 dateIntegralPoint js 参数 Date new 定时 执行


 

1. 原文链接:js定时器每天固定时间执行任务

首先,定义一个方法,在方法内接收四个参数,一个参数是接收间隔的天数,第二个参数是接收具体某个时间点,第三个参数是决定是否在启动服务时立即执行一次,第四个参数是一个执行的方法,即要定时执行的逻辑。当然,这前三个参数将定义在一个对象中,实际传入一个对象和一个函数作为参数就可以,这样整个对象可以作为配置参数。

func参数是要执行的方法。

如果需要多个时间点可以调用多次。

timeoutFunc (config, func) {
  config.runNow && func()
  const nowTime = new Date().getTime()
  const timePoints = config.time.split(':').map(i => parseInt(i))
  let recent = new Date().setHours(...timePoints)
  recent >= nowTime || (recent += 24 * 3600000)
  setTimeout(() => {
    func()
    setInterval(func, config.interval * 3600000)
  }, recent - nowTime)
}
config = {//参数的说明 interval: 1, //间隔天数,间隔为整数 runNow: false, //是否立即运行 time: "14:00:00" //执行的时间点 时在0~23之间 }

 

2. 原文链接:JS 指定每天固定时间执行

window.setInterval(function(){
  var refreshHours = new Date().getHours();
  var refreshMin = new Date().getMinutes();
  var refreshSec = new Date().getSeconds();
  if(refreshHours=='0' && refreshMin=='0' && refreshSec=='0'){
    // 指定每天凌晨做的事情
  }
}, 1000);

 

3. 原文链接:JS定时器使用,定时定点,固定时刻,循环执行详解 

var date = new Date();//现在时刻
var dateIntegralPoint = new Date();//用户登录时刻的下一个整点,也可以设置成某一个固定时刻
dateIntegralPoint.setHours(date.getHours()+1);//小时数增加1
dateIntegralPoint.setMinutes(0);
dateIntegralPoint.setSeconds(0);
setTimeout("nextIntegralPointAfterLogin();",dateIntegralPoint-date);//用户登录后的下一个整点执行。

function nextIntegralPointAfterLogin(){
  IntegralPointExecute();//在整点执行的函数,在每个整点都调用该函数
  setInterval("IntegralPointExecute();",60*60*1000);//一个小时执行一次,那么下一个整点,下下一个整点都会执行
}

【推荐】:js技巧

 

标签:整点,每日,dateIntegralPoint,js,参数,Date,new,定时,执行
来源: https://www.cnblogs.com/wwqzbl/p/15352194.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有