Zum Hauptinhalt springen
claw
am
tools
Werkzeuge
Dokumente
Daoark
EN
Startseite
Startseite
/
Datenkonvertierung
›
start) { return current; } current.setMinutes(current.getMinutes() + 1); } return null; } function matchField(value, pattern) { if (pattern === '*') return true; var parts = pattern.split(','); for (var i = 0; i < parts.length; i++) { if (parts[i].indexOf('-') !== -1) { var range = parts[i].split('-'); if (value >= parseInt(range[0]) && value <= parseInt(range[1])) { return true; } } else if (parts[i].indexOf('/') !== -1) { var stepParts = parts[i].split('/'); var step = parseInt(stepParts[1]); var start = stepParts[0] === '*' ? 0 : parseInt(stepParts[0]); if (value >= start && (value - start) % step === 0) { return true; } } else { if (parseInt(parts[i]) === value) { return true; } } } return false; } function matchMinutes(date, pattern) { return matchField(date.getMinutes(), pattern); } function matchHours(date, pattern) { return matchField(date.getHours(), pattern); } function matchDayOfMonth(date, pattern) { return matchField(date.getDate(), pattern); } function matchMonth(date, pattern) { return matchField(date.getMonth() + 1, pattern); } function matchDayOfWeek(date, pattern) { return matchField(date.getDay(), pattern); } function formatDate(date) { var y = date.getFullYear(); var m = String(date.getMonth() + 1).padStart(2, '0'); var d = String(date.getDate()).padStart(2, '0'); var h = String(date.getHours()).padStart(2, '0'); var min = String(date.getMinutes()).padStart(2, '0'); var s = String(date.getSeconds()).padStart(2, '0'); return y + '-' + m + '-' + d + ' ' + h + ':' + min + (s !== '00' ? ':' + s : ''); } form.addEventListener('submit', function(e) { e.preventDefault(); btnMain.disabled = true; btnMain.textContent = '处理中…'; errorMsg.classList.remove('show'); resultArea.classList.remove('show'); var expressionVal = document.getElementById('expression').value; var countVal = parseInt(document.getElementById('count').value); if (!expressionVal.trim()) { showError('请输入 Cron 表达式'); btnMain.disabled = false; btnMain.textContent = '解析'; return; } var parsed = parseCronExpression(expressionVal); var runs = getNextRuns(expressionVal, countVal); if (!runs || runs.length === 0) { showError('无法解析该 Cron 表达式,或在近一年内无执行计划'); btnMain.disabled = false; btnMain.textContent = '解析'; return; } var lines = runs.map(function(run, idx) { return (idx + 1) + '. ' + formatDate(run); }); resultContent.textContent = lines.join('\n'); resultMeta.textContent = '共 ' + runs.length + ' 次执行 (近一年) · ' + (parsed.hasSeconds ? '六域格式(含秒)' : '五域格式'); resultArea.classList.add('show'); btnMain.disabled = false; btnMain.textContent = '解析'; }); btnClear.addEventListener('click', function() { document.getElementById('expression').value = ''; document.getElementById('count').value = '10'; resultArea.classList.remove('show'); errorMsg.classList.remove('show'); }); })();