CronExpressionGenerator
v1.10.2
CRON表达生成器是PHP应用的精美工具。当然,此软件包的主要特征是能够生成Cron表达式。
cron表达式生成器
预制表达式
自定义表达式
据记录
经过良好的测试
与Laravel兼容
PHP 8.0及以上
您可以通过作曲家安装软件包:
作曲家需要Butschster/Cron-Expression-Generator
就是这样!
使用butschstercronexpressiongergenerator;使用croncronexpression; $ generator = new Generator(); //或$ generator = new Genertator(new CroneXpressator(' * * * * * * * * * *')); //或$ GENTATOR = GENTATOR = GENTATOR = GENTORATOR = GENTORATOR :: create :: create();//// /或$ generator = Generator :: create(new CroneXpression(' * * * * * *'));
$ expression = $ generator-> getexpression(); // croncronexpression
echo $ generator-> toexpression(); // * * * * * echo(string)$ generator; // * * * * * echo(string)$ generator-> getExpression(); // * * * * * * echo $ generator-> getExpression() - > getExpression(); // * * * * * *
echo $ generator-> cron(' * */3 * * *'); // * */3 * * * * echo $ generator-> cron(' * * */3 * * * *') - > everytwominutes(); // */2 */3 * * * *
//每个minterecho $ generator-> everyminute(); // * * * * * //每个偶数MinnereCho $ Generator-> everyevenminute(); // */2 * * * * //每两分钟echo $ generator-> everytwominutes(); // */2 * * * * //每三分钟$ generator-> everythreeminutes(); // */3 * * * * //每四分钟echo $ generator-> everyfourminutes(); // */4 * * * * * //每五分钟,$ generator-> everyfiveminutes(); // */5 * * * * //每十分钟$ generator-> everytenminutes(); // */10 * * * * //每十五分钟$ generator-> everyfifteenminutes(); // */15 * * * * //每00和30分钟$ generator-> everythirtyminutes(); // 0,30 * * * * //每个mintereCho $ generator-> set(new ButschstercronexpressionPartsminuteseveryminute()); // * * * * * * echo $ generator-> set(new butschstercronexpressionpartsminuteseveryminute(2)); // * */2 * * * * //特定的MENETECHO $ generator-> set(新的ButSchsterCroneXpressionPartsMinutessPecificminutes(2,3,10)); // * 2,3,10 * * * // MENESECHO $ generator-> set(new butschstercronexpressionpartsminutesbetnembetnemintesminutes(0,30)); // * 0-30 * * * *
//每小时以00分钟$ $ generator-> hourly(); // 0 * * * * //每小时15分钟echo $ generator-> hourlyat(15); // 15 * * * * //每小时15、30、45分钟$ generator-> hourlyat(15、30、45); // 15,30,45 * * * * //每两个小时$ generator-> everytwohours(); // 0 */2 * * * //每三个小时$ generator-> everythreehours(); // 0 */3 * * * //每四个小时$ generator-> everyfourhours(); // 0 */4 * * * //每六个小时$ generator-> everysixhours(); // 0 */6 * * * * //每1、2、3小时$ generator-> set(new Butschstercronexpressepartspartshoursspecifichours(1、2、3)); // * 1,2,3 * * * //每三个小时$ generator-> set(new butschstercronexpressionpartsshourseverynerveryhour()); // * * * * * * echo $ generator-> set(new ButschstercronexpressionPartshourseveryveryhour(3)); // * */3 * * * * //在小时cho $ generator-> set之间(新的butschstercronexpressionpartshoursbetshorsbetweenhours Hours(0,12)); // * 0-12 * * *
//每天00:00:00cho $ generator-> daily(); // 0 0 * * * //每天在01:00cho $ generator-> daily(1); // 0 1 * * * //每天在03:00、15:00、23:00cho $ generator-> Daily(3、15、23); // 0 3,15,23 * * * //每天13:00cho $ generator-> dailyat(13); // 0 13 * * * //每天13:25echo $ generator-> dailyat(13,25); // 25 13 * * * //每天在03:00,15:00cho $ generator-> Twicdaily(3,15); // 0 3,15 * * * //每天在03:05,15:05echo $ generator-> twicedailyat(3,15,5); // 5 3,15 * * * //最后一天的每个月00:00:00cho $ generator-> lastdayofmonth(); // 0 0 l * * //最后一天的每个月12:00cho $ generator-> lastdayofmonth(12); // 0 12 l * * //最后一天的每个月12:30:30echo $ generator-> lastdayofmonth(12,30); // 30 12 l * * //上一个工作日的每个月00:00:00cho $ generator-> lastweekdayofmonth(); // 0 0 lw * * //上一个工作日的每个月12:00cho $ generator-> lastweekdayofmonth(12); // 0 12 lw * * //上一个工作日的每个月12:30:30echo $ generator-> lastweekdayofmonth(12,30); // 30 12 lw * * //每1、2、3 daysecho $ generator-> set(new butschstercronexpressionpartsdaysdaysspificdays(1、2、3)); // * * 1,2,3 * * echo $ generator-> set(new butschstercronexpresepressepartsdayseveryday()); // * * * * * //每三天echo $ generator-> set(new butschstercronexpressionpartsdayseveryday(3)); // * * * */3 * * // daysecho $ generator-> set(new butschstercronexpressionpartsdaysbetweendays(0,12)); // * * 0-12 * * // montheCho $ generator-> set(new ButSchsterCroneXpressionPartsDayslastDayofMonth()); // * * L * *
//每周在星期一echo $ generator-> evernaver(); // 0 0 * * 0 //每个星期的星期一和周四cho $ generator-> weekly(Generator ::星期一,发电机::星期四); // 0 * * * 1,4 //每周在工作日$ generator-> daily() - >工作日()(); // 0 0 * * 1-5 //每周在周末$ generator-> daily() - >周末(); // 0 0 * * 6,0 //每个星期一cho $ generator-> daily() - > mondays(); // 0 0 * * 1 // ORECHO $ GENTATOR-> WeeklyonMonday(); // OreCho $ Generator-> WeeklyonMonday(8,6); // 6 8 * * 1 //每个星期二eCho $ generator-> daily() - > tuesdays(); // 0 0 * * 2 // ORECHO $ GENTARATOR-> WeeklyOntuesday(); //每个星期三eCho $ generator-> daily() - > nesterdays()(); // 0 0 * * 3 // ORECHO $ GENTATOR-> WeeklyOnwednesday(); //每个星期四eCho $ generator-> daily() - > turndays()(); // 0 0 * * 4 // ORECHO $ GENTATOR-> Weeklyonthursday(); //每个星期五eCho $ generator-> daily() - > fridays()(); // 0 0 * * 5 // ORECHO $ GENTATOR-> WeeklyOnfriday(); //每个星期六eCho $ generator-> daily() - > saturdays()(); // 0 0 * * 6 // ORECHO $ GENTATOR-> WeeklyOnSaturday(); //每个星期日eCho $ generator-> daily() - > sundays()(); // 0 0 * * 0 // ORECHO $ GENTARATOR-> WeekLyonSunday(); //每个星期一Enko $ Generator-> Weeklyon(Generator ::星期一); // 0 0 * * 1 //每个星期一的上午8点回声$ generator-> Weeklyon(Generator ::星期一8); // 0 8 * * 1 //每个星期一08:06echo $ generator-> Weeklyon(Generator ::星期一,8,6); // 6 8 * * 1 //每天的每一天weekecho $ generator-> set(new butschstercronexpressionpartsdaysofweekeverydayofweek()); // * * * * * //每两天的每两天aekecho $ generator-> set(new butschstercronexpressionpartsdaysofweekeverydayofweek(2)); // * * * * * */2 //每个星期一,星期三,星期五$ generator-> set(new Butschstercronexpresepressepartsdaysofweekspecificdaysofweekweek(Generator ::星期一,Generator :: generator ::星期三,生成器:: generator :: fenerator :: fenerator :: feneration :: freation :: freation :: freation :: facire)); // * * * * * 1,3,5 //一周的天数$ generator-> set(new butschstercronexpressionpartspartsdaysofweekbetweendayofweek(generator :: generator :: generator :: fenerator :: feneration :: freation :: friday fenerator :: freation)); // * * * * * 1-5 //一个Weekecho $ generator-> set的上周一(新的ButschsterCroneXpressionPartsdaysofweeklastdayofweek()); // * * * * * 1L // WeekeCho $ generator-> set的上周五(新的ButschstercronexpressionPartsdaysofweeklastdayofweek(Generator :: Friday)); // * * * * 5L //每个月的第一个星期一每个月cho $ generator-> set(new ButschstercronexpressionPartsdaysofweeknthdayofweek()); // * * * * * 1#1 //每个月cho $ generator-> set的每个第三个星期五(new butschstercronexpressionpartsdaysofweeknthdayofweek(generator :: fenerator :: feneration :: Friday,feneration :: friday at 3)); // * * * 5#3
//每月1-ST日的每个月00:00:00cho $ generator-> monthly(); // 0 0 1 * * //每月1-st Day at 12:00cho $ generator->月度(12); // 00 12 1 * * //每月在1-st Day的每月12:30:30echo $ generator->月度(12,30); // 30 12 1 * * //每月15-St Day,12:00cho $ generator-> monthlyon(15,12); // 0 12 15 * * //每月15-St Day,12:30echo $ Generator-> Monlyon(15、12、30); // 30 12 15 * * //每月两次在15、24天00:00:00cho $ generator-> TwiceMonthly(15,24); // 0 0 15,24 * * //每月两次在15、24天,10:00cho $ generator-> TwiceMonthly(15、24、10); // 0 10 15,24 * * //每月两次在15、24天,10:30:$ generator-> TwiceMonthly(15、24、10、30); // 30 10 15,24 * * //每个月在12、24、30天在10:345echo $ generator-> dailyat(10、45) - > daysofmonth(12、24、30); // 45 10 12,24,30 * //每个季度Yyyy-01,03,06,09-01 00:00CHO $ generator->季度(); // 0 0 1 1 1-12/3 *//每年yyyy-01-01 00:00cho $ generator-> ailyly(); // 0 0 1 1 *//每年YYYY-04-01 00:00CHO $ GENTATOR-> aNearlyon(Generator :: APR); // 0 0 1 4 *//每年YYYY-04-05 00:00CHO $ GENTATOR->年度(Generator :: Apr,5); // 0 0 5 4 *//每年yyyy-04-05 08:00cho $ generator-> ailyon(Generator :: Apr,5,8); // 0 8 5 4 *//每年yyyy-04-05 08:30echo $ generator-> aNearlyon(Generator :: Apr,5,8,30); // 30 8 5 4 *//每个月cho $ generator-> set(new butschstercronexpressionpartsmonthseverymonth()); // * * * * * //每两个月echo $ generator-> set(new Butschstercronexpressionpartsmonthseverymonth(2)); // * * * */2 * //特定月份:4月和12月$ generator-> set(new butschstercronexpressepartsmonthsmonthsspefificonths(generator :: apr,Generator :: dec dec)); // * * * 4,12 * //在4月至12月$ generator-> set(new butschstercronexpressepressepartsmonthsmonthsbetnemonths(Generator :: APR,Generator :: DEC))); // * * * 4-12 * //季度$ generator-> set(new butschstercronexpressionpartsmonthsmonthsquarterly()); // * * * 1-12/3 *
$ date = new DateTime('2021-02-05 12:34:26'); //每年yyyy-02-05 12:34echo $ generator-> on($ date); // 34 12 5 2 *// ORECHO $ GENTATOR-> SET(新的ButSchsterCroneXpressionPartsdateTime($ date)); // 34 12 5 2 *
使用ButSchsterCroneXpressionPartsDaysSpificdays;使用ButschstercronexpressionPartsDaysofWeekSpecificDaysOfweek;使用Butschstercronexpresepressionpartshourse veryherveryhoursveryhour;使用butschstercronexpreseparterparterpartspressionpartssminuteseveryminute; 5,10,15,20,25,30 3,6,9,12 1,3,5,0eCho $ generator-> ailyly() - >月(生成器:: MAR,发电机:: JUN,GENEDATOR :: SEP,GENETARATOR :: DEC) - > daysofmonth(5、10、15、20、25、30) - > daysofweek(生成器::星期一,发电机::星期三,发电机::星期五,发电机::星期日) - > everytwohours() - > everyminute(); // orecho $ generator-> set(新的特定months(Generator :: Mar,Generator :: Jun,Generator :: Sep,sep,Generator :: dec),新的特定日(5,10,15,20,20,20,20,20,20,20 25,30),新的特定日期(Generator ::星期一,发电机::星期三,生成器::星期五,发电机::星期日),New EveryHour(2),New每个半月() );
请参阅:https://github.com/dragonmantank/cron-expression#usage
echo $ generator-> monlyon(15,12) - > getExpression() - > getNextrundate(); // DateTime
<?phpnamespace AppConsole;use ButschsterCronExpressionGenerator;use IlluminateConsoleSchedulingSchedule;use IlluminateFoundationConsoleKernel as ConsoleKernel;use IlluminateSupportFacadesDB;class Kernel extends ConsoleKernel{protected function schedule(Schedule $schedule) {$ schedule->命令('电子邮件:发送taylor -force') - > cron(generator :: create() - > daily() ); } }
要创建一个自定义表达式类,您需要实现ButschsterCronExpressionPartValueInterface
使用butschstercronexpressionpressionPartvalueInterface;使用CroncroneXpression;类季度实现PartValueInterface {public function update Expexpression(cronexpression $ expression):void {$ expression-> setpart(cronexpression :: montry :: noter :: noter :: note ::''1-12/3'); } }
使用
echo butschstercronexpressiongergenerator :: create() - > set(new季度()); // * * * 1-12/3 *
use ButschsterCronExpressionPartsDaysSpecificDays;use ButschsterCronExpressionPartsHoursSpecificHours;use ButschsterCronExpressionPartsMinutesSpecificMinutes;use ButschsterCronExpressionPartsMonthsSpecificMonths;use ButschsterCronExpressionPartValueInterface;use CronCronExpression;use dateTimeInterface; class dateTime insterments partvalueinterface {public function __construct(private dateTime Interface $ time) { } public function update expression(cronexpression $ expression):void {$ parts = [new percemminutes(((int)$ this-> time-> time-> format('i')),新specifichours(((int)$ this-> time-> time->>格式('g')),新的特定日(((int)$ this-> time->格式('j')),新的特定记录(((int)$ this-> time->格式('n')) ]; foreach($ parts作为$ part){$ part-> updateexpression($ expression); } } }
使用
echo butschstercronexpressiongergenerator :: create() - > set(new dateTime(new DateTime('2021-02-05 12:34:26'))); // 34 12 5 2 *
作曲家测试
Butschster
麻省理工学院许可证(麻省理工学院)。请参阅许可证文件以获取更多信息。