• js实现每日定时任务


    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技巧

  • 相关阅读:
    172. Factorial Trailing Zeroes
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    91. Decode Ways
    LeetCode 328 奇偶链表
    LeetCode 72 编辑距离
    LeetCode 226 翻转二叉树
    LeetCode 79单词搜索
    LeetCode 198 打家劫舍
    LeetCode 504 七进制数
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/15352194.html
Copyright © 2020-2023  润新知