<!DOCTYPE html>
<html>
<head>
	<title>Cron解析器</title>
	<script type="text/javascript">
		function parseCron() {
			var cron = document.getElementById("cron").value;
			var cronArr = cron.split(" ");
			var date = new Date();
			var year = date.getFullYear();
			var month = date.getMonth() + 1;
			var day = date.getDate();
			var hour = date.getHours();
			var minute = date.getMinutes();
			var second = date.getSeconds();
			var output = "";
			var count = 0;
			for(var i = 0; i < 5; i++) {
				if(cronArr[i] == "*") {
					cronArr[i] = "0-59";
				}
				if(cronArr[i].indexOf("/") != -1) {
					var arr = cronArr[i].split("/");
					var start = parseInt(arr[0]);
					var step = parseInt(arr[1]);
					cronArr[i] = start + "-" + (59 + start - step) + "/" + step;
				}
				if(cronArr[i].indexOf(",") != -1) {
					var arr = cronArr[i].split(",");
					var outputArr = [];
					for(var j = 0; j < arr.length; j++) {
						var num = parseInt(arr[j]);
						if(num == hour && i == 2) {
							num = num + 1;
						}
						if(num > 59 || (i == 3 && num > 31) || (i == 4 && num > 12) || (i == 5 && num > 7)) {
							continue;
						}
						if(i == 0) {
							outputArr.push(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + num);
						} else if(i == 1) {
							outputArr.push(year + "-" + month + "-" + day + " " + hour + ":" + num + ":" + second);
						} else if(i == 2) {
							outputArr.push(year + "-" + month + "-" + day + " " + num + ":" + minute + ":" + second);
						} else if(i == 3) {
							outputArr.push(year + "-" + month + "-" + num + " " + hour + ":" + minute + ":" + second);
						} else if(i == 4) {
							outputArr.push(year + "-" + num + "-" + day + " " + hour + ":" + minute + ":" + second);
						} else if(i == 5) {
							var dayOfWeek = num - 1;
							var diff = dayOfWeek - date.getDay();
							if(diff < 0) {
								diff = diff + 7;
							}
							var newDate = new Date(date.getTime() + (diff * 24 * 60 * 60 * 1000));
							outputArr.push(newDate.getFullYear() + "-" + (newDate.getMonth() + 1) + "-" + newDate.getDate() + " " + hour + ":" + minute + ":" + second);
						}
						count++;
						if(count >= 5) {
							break;
						}
					}
					output = output + outputArr.join(", ") + "\n";
				} else {
					var arr = cronArr[i].split("-");
					var start = parseInt(arr[0]);
					var end = parseInt(arr[1]);
					if(i == 0) {
						start = start - second;
						end = end - second;
					} else if(i == 1) {
						start = start - minute;
						end = end - minute;
					} else if(i == 2) {
						start = start - hour;
						end = end - hour;
					} else if(i == 3) {
						start = start - day;
						end = end - day;
					} else if(i == 4) {
						start = start - month;
						end = end - month;
					} else if(i == 5) {
						start = start - 1;
						end = end - 1;
					}
					if(start < 0) {
						start = start + 60;
					}
					if(end < 0) {
						end = end + 60;
					}
					var outputArr = [];
					for(var j = start; j <= end; j++) {
						if(j == hour && i == 2) {
							j = j + 1;
						}
						if(j > 59 || (i == 3 && j > 31) || (i == 4 && j > 12) || (i == 5 && j > 7)) {
							continue;
						}
						if(i == 0) {
							outputArr.push(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + j);
						} else if(i == 1) {
							outputArr.push(year + "-" + month + "-" + day + " " + hour + ":" + j + ":" + second);
						} else if(i == 2) {
							outputArr.push(year + "-" + month + "-" + day + " " + j + ":" + minute + ":" + second);
						} else if(i == 3) {
							outputArr.push(year + "-" + month + "-" + j + " " + hour + ":" + minute + ":" + second);
						} else if(i == 4) {
							outputArr.push(year + "-" + j + "-" + day + " " + hour + ":" + minute + ":" + second);
						} else if(i == 5) {
							var dayOfWeek = j - 1;
							var diff = dayOfWeek - date.getDay();
							if(diff < 0) {
								diff = diff + 7;
							}
							var newDate = new Date(date.getTime() + (diff * 24 * 60 * 60 * 1000));
							outputArr.push(newDate.getFullYear() + "-" + (newDate.getMonth() + 1) + "-" + newDate.getDate() + " " + hour + ":" + minute + ":" + second);
						}
						count++;
						if(count >= 5) {
							break;
						}
					}
					output = output + outputArr.join(", ") + "\n";
				}
			}
			document.getElementById("result").innerHTML = output;
		}
	</script>
</head>
<body>
	<h1>Cron解析器</h1>
	<h2>功能1:解析Cron表达式</h2>
	<label for="cron">请输入6位格式的Cron表达式:</label>
	<input type="text" id="cron" placeholder="秒 分 时 天 月 周">
	<button type="button" onclick="parseCron()">输出</button>
	<div id="result"></div>
<pre><code>&lt;h2&gt;功能2:Cron示例&lt;/h2&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;th&gt;表达式&lt;/th&gt;
		&lt;th&gt;说明&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;*&lt;/td&gt;
		&lt;td&gt;每秒钟&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;*/1 * * * *&lt;/td&gt;
		&lt;td&gt;每分钟&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;0 */1 * * *&lt;/td&gt;
		&lt;td&gt;每小时&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;0 0 10 * *&lt;/td&gt;
		&lt;td&gt;每天10点&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;0 0 10 * MON&lt;/td&gt;
		&lt;td&gt;每周一10点&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;0 0 1 * *&lt;/td&gt;
		&lt;td&gt;每月1号&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
</code></pre>
</body>
</html>
帮我写一个可以直接运行的html他是corn解析器请用js实现功能1输入6位格式的corn表达式对应秒、分、时、天、月、周点击输出可以输出5个最近会触发运行cron的具体日期格式类似2022-01-02 120201功能2用表格列出几个cron示例他也是6位格式的corn表达式对应秒、分、时、天、月、周分别是每秒每分每小时每天10点每周一10点还有每月1号会触发的cron表达式

原文地址: http://www.cveoy.top/t/topic/bpYJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录