vue判断定时任务此刻是否在任务时间段内

定时任务是每天都需要执行的操作,因此不能使用时间戳判断,时间戳是新建任务当天的时间。

思路:抛弃日期,转化成时间来操作。可以转化成秒来判断,这样可以省去判断时,然后分,然后秒的逻辑。

解决:(文章使用moment来做时间转化)

1.得到以秒计算的时间

getSeconds(val) {
      const h = moment(val).get('hours')
      const m = moment(val).get('minutes')
      const s = moment(val).get('seconds')
      return h * 3600 + m * 60 + s
},

此刻的时间:

 const nowTime = this.getSeconds()   //此刻时间
 const start_time = this.getSeconds(this.start_time * 1000)   //任务开始时间
 const end_time = this.getSeconds(this.end_time * 1000)       //任务结束时间

if (nowTime >= end_time) {
          //任务结束
         this.taskStatus = true
 } else {
       if (this.start_time > this.end_time) { //跨天任务  
        //此刻>=开始时间,或者此刻<=结束时间
        //例如 23:00-5:00的任务,此时是1点或是23:30都是在任务之内
        //即在前一天此刻>=开始,后一天此刻<=结束
          this.status = nowTime >= start_time || nowTime <= end_time
       } else {    //不跨天
           //开始<=此刻<=结束时间
          this.status = start_time <= nowTime && nowTime <= end_time
       }
 }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
cron表达式是用于定义定时任务调度的一种时间表达式。在Vue中,可以使用vue-quartz插件来实现定时任务的调度。 首先,需要在项目中安装vue-quartz插件。可以通过npm或yarn进行安装: ``` npm install vue-quartz ``` 或 ``` yarn add vue-quartz ``` 安装完成后,在Vue的入口文件main.js中引入并注册vue-quartz插件: ```javascript import Vue from 'vue'; import VueQuartz from 'vue-quartz'; Vue.use(VueQuartz); ``` 接下来,在需要定义定时任务的组件中,使用`<cron>`标签来设置cron表达式: ```vue <template> <div> <h1>定时任务</h1> <cron v-model="cronExpression" @change="handleCronChange"></cron> </div> </template> <script> export default { data() { return { cronExpression: '' }; }, methods: { handleCronChange(cronExpression) { // 在这里可以处理cron表达式的变化,并执行相应的操作 console.log('cron表达式变化:', cronExpression); } } }; </script> ``` 在上面的示例中,通过`v-model`指令将cron表达式绑定到组件的data属性`cronExpression`上,并通过`@change`事件监听cron表达式的变化。 当用户在页面上选择或输入cron表达式时,`handleCronChange`方法会被调用,并传入新的cron表达式。在该方法中可以根据cron表达式执行相应的定时任务逻辑。 请注意,以上只是一个简单的示例,具体的定时任务逻辑需要根据实际需求进行实现。同时,需要了解cron表达式的语法规则和含义,以确保正确设置定时任务的执行时间

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值