admin管理员组

文章数量:1530040

cron表达式讲解

参见该网址:

https://wwwblogs/GarfieldTom/p/3746290.html

cron表达式只有专业技术人员才看得懂,普通人不知道表达式是什么意思,

有需求让我们将cron表达式翻译成普通人可以看懂的文字,刚开始觉得这个

需求有点强人所难,不过后来在网上竟然找到了解决方案。

在GitHub上有开源的项目,链接如下:

https://github/bradymholt/cRonstrue

将项目下载到本地,解压压缩包,点开文件夹,copy里面的dist文件夹到自己

需要的项目里,dist里面有cron表达式翻译的核心js包和locales国际化的相关语言包。

在要翻译cron表达式的页面引入核心js包:

在需要翻译的地方调用js包里提供的API,很简单只有一句代码:

cronstrue.toString(cronString, { locale: "zh_CN" })

第一个参数是cron表达式,

第二个参数是一个JSON对象,locale的值为相应的语言标识,这里翻译成中文。

如果要将列表里含有cron表达式的一列的值翻译成中文,就必须在页面加载完毕后来做特殊处理,

下面给一个例子:

js代码:

//同步表格定时规则翻译

$("[name='cronString']").each(function(){

var cronString = $(this).text();

if(cronString){

$(this).prop("innerHTML",cronstrue.toString(cronString, { locale: "zh_CN" }));

}

});

//异步表格定时规则翻译

var checksObj = $('td[data-index="10"]').find(".datatable-cell .text-center").prevObject;

if (null != checksObj && checksObj.length >= 1) {

for (var i = 0; i < checksObj.length; i++) {

var cronString = $(checksObj[i]).text();

if(cronString){

$(checksObj[i]).prop("innerHTML",cronstrue.toString(cronString, { locale: "zh_CN" }));

}

}

}

html代码如下:

${modelNameToCronExpress[tmodelMaintainConfig.modelName] }

因为前端用的由bootstrap改写的zui框架所以表格实际上有两份,一份是同步表格即html里编写的表格,另一份是

框架自动渲染的表格,所以js代码要写两份。之所以要在td上加一个name属性是为了方便获取cron表达式这一列的

所有td对象。

总体思想是获取所有待替换对象,遍历获取每个对象的值调用翻译API后将值赋值给原对象。

本文标签: 表达式详解翻译成插件现实