首先展现一下什么是Cron表达式:
"a"、"b"为数字,“()”为计时单位 | 秒 | 分 | 时 | 天 | 月 | 年 |
? | 未设置 | |||||
每一() | * | |||||
从a()开始,每隔b()执行 | a/b | |||||
第a()执行,第b()执行,第c()执行...... | a,b,c,d.... | |||||
周期从a()到b() | a-b |
这是里面共同的部分用上表来展示,其中天的选项更多一些:
SUN,MON:每星期几(周日,周一)
L:在这个月的最后一天
LW:在这个月的最后一个工作日
aL:在这个月的最后一个星期a-1(a为整数,1<a<8)或星期日(a=1)
L-a:在本月底的前a天
aW:最近的工作日(周一至周五)至本月a日
a#b:在这个月的第b(b为整数,0<a<6)个星期a-1(a为整数,1<a<8)或星期日(a=1)
这个表达式还是比较复杂的,其实个人感觉后端转换和前端转换都是可行的,下面先来尝试下前端转换,即js转换:
首先的思路是将Cron表达式转换成一个数组,这个数组正常是有6个对象(元素)的,然后对这6个对象进行分析,后期也可以封装:
methods:
secondTransform(){
if(array[0] == '?'){
this.result = ''
}else if(array[0] == '*'){
this.result = '每一秒'
}
}