Tengo una expresión cron y necesito verificar si una fecha determinada es parte de ella (lo que significa que el cron se activaría en esa fecha) (usando nodejs)
Puede usar el paquete cron-parser y hacer algo como esto:
const isDateMatchesCronExpression = (expression, date, scope = 'second') => { scope = ['second', 'minute', 'hour', 'day', 'month', 'weekday'].indexOf(scope.toLowerCase()); try { const data = cronParser.parseExpression(expression).fields; if (scope <= 0 && !data.second.includes(date.getSeconds())) return false; if (scope <= 1 && !data.minute.includes(date.getMinutes())) return false; if (scope <= 2 && !data.hour.includes(date.getHours())) return false; if (scope <= 3 && !data.dayOfMonth.includes(date.getDate())) return false; if (scope <= 4 && !data.month.includes(date.getMonth() + 1)) return false; if (scope <= 5 && !data.dayOfWeek.includes(date.getDay())) return false; return true; } catch (e) { throw new Error(`isDateMatchesCronExpression error: ${e}`); } };