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 *
使用butschstercronexpressionpartsdaysspartsepificdays;使用butschstercronexpressionpartsdaysofweekspecificdaysofweek;使用butschstercronexpresepressionpartshourseveryhoursveryhoursveryhour;使用butschstercronexpresepreseparterparterpartsminuteseveryminute; ,20,25,30 3,6,9,12 1,3,5,0echo $ Generator->每年() - >月(生成器:: 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),新的特定日期(生成器::星期一,生成器::星期三,生成器::星期五,發電機::星期日),新的EveryHour(2),new everyminute() );
請參閱: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 *
使用ButschstercronexpressionPartsdaysSpartspartsefificdays;使用ButschstercronexpressionPartsspartsspecifichours;使用ButschstercronexpressionPresssminutesspecificminutes;使用Butschsterstercronexpartsmonthsmonthsmonthsspecificonthssspecificonths; DateTime實現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-> format('j')),新的特定months(((int )$ this-> time-> time-> format('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
麻省理工學院許可證(麻省理工學院)。請參閱許可證文件以獲取更多信息。