PHP code example of bakame / cron
1. Go to this page and download the library: Download bakame/cron library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once ('vendor/autoload.php' );
bakame / cron example snippets
use Bakame \Cron \Scheduler ;
use Bakame \Cron \Expression ;
Expression::registerAlias('@every_half_hour' , '*/30 * * * *' );
$scheduler = Scheduler::fromSystemTimezone('@every_half_hour' );
$scheduler->isDue('2022-03-15 14:30:01' );
$scheduler->isDue('2022-03-15 14:29:59' );
$runs = $scheduler->yieldRunsBetween(new DateTime('2019-10-10 23:29:25' ), '2019-10-11 01:30:25' );
var_export(array_map(
fn (DateTimeImmutable $d): string => $d->format('Y-m-d H:i:s' ),
iterator_to_array($runs, false )
));
use Bakame \Cron \Expression ;
use Bakame \Cron \Scheduler ;
use Bakame \Cron \DatePresence ;
TC';
$scheduler1 = new Scheduler(Expression::fromString($expression), new DateTimeZone($timezone), DatePresence::INCLUDED);
$scheduler2 = new Scheduler($expression, $timezone, DatePresence::INCLUDED);
$scheduler3 = Scheduler::fromUTC($expression, DatePresence::INCLUDED);
//all these instantiated object are equals.
$scheduler = Scheduler::fromSystemTimezone(Expression::fromString('* * * * MON#1' ));
$scheduler->isDue(new DateTime('2014-04-07 00:00:00' ));
$scheduler->isDue('NOW' );
$scheduler = new Scheduler('@daily' , 'Africa/Kigali' , DatePresence::EXCLUDED);
$run = $scheduler->run(new Carbon\CarbonImmutable('now' ));
echo $run->format('Y-m-d H:i:s, e' ), PHP_EOL;
echo $run::class;
$scheduler = new Scheduler(Expression::fromString('@daily' ), 'Africa/Kigali' , DatePresence::EXCLUDED);
echo $scheduler->run('now' , 3 )->format('Y-m-d H:i:s, e' ), PHP_EOL;
$scheduler = new Scheduler(Expression::fromString('@daily' ), 'Africa/Kigali' , DatePresence::EXCLUDED);
echo $scheduler->run('2022-01-01 00:00:00' , -2 )->format('Y-m-d H:i:s, e' ), PHP_EOL;
$date = new DateTimeImmutable('2022-01-01 00:04:00' , new DateTimeZone('Asia/Shanghai' ));
$scheduler = new Scheduler('4-59/2 * * * *' , 'Asia/Shanghai' , DatePresence::EXCLUDED);
echo $scheduler->run($date)->format('Y-m-d H:i:s, e' ), PHP_EOL;
echo $scheduler->
$scheduler = Scheduler::fromSystemTimezone('30 0 1 * 1' )->0 -10 23 :20 :00 '), 5);
var_export(array_map(fn (DateTimeImmutable $d): string => $d->format(' Y-m-d H:i:s'), iterator_to_array($runs, false)));
//returns
//array (
// 0 => ' 2019 -10 -14 00 :30 :00 ',
// 1 => ' 2019 -10 -21 00 :30 :00 ',
// 2 => ' 2019 -10 -28 00 :30 :00 ',
// 3 => ' 2019 -11 -01 00 :30 :00 ',
// 4 => ' 2019 -11 -04 00 :30 :00 ',
//)
$scheduler = Scheduler::fromSystemTimezone('30 0 1 * 1' )->10 -10 23 :20 :00 '), 5);
$scheduler = Scheduler::fromSystemTimezone('30 0 1 * 1' )-> new DateInterval('P1D' ));
$scheduler = Scheduler::fromSystemTimezone('30 0 1 * 1' )->, '1 DAY' );
$scheduler = Scheduler::fromSystemTimezone('30 0 1 * 1' )->', ' 2019 -09 -09 00 :30 :00 ');
use Bakame \Cron \MonthField ;
$field = new MonthField('JAN' );
$field = new MonthField(23 );
$expression = new Expression(
new MinuteField('3-59/15' ),
new HourField('6-12' ),
new DayOfMonthField('*/15' ),
new MonthField('1' ),
new DayOfWeekField('2-5' ),
);
$expression->toString();
use Bakame \Cron \Expression ;
$cron = Expression::fromString('3-59/15 6-12 */15 1 2-5' );
echo $cron->toString();
echo $cron->minute->toString();
echo $cron->hour->toString();
echo $cron->dayOfMonth->toString();
echo $cron->month->toString();
echo $cron->dayOfWeek->toString();
var_export($cron->toFields());
use Bakame \Cron \Expression ;
$cron = Expression::fromFields(['minute' => 7 , 'dayOfWeek' => '5' ]);
echo $cron->toString();
echo $cron->minute->toString();
echo $cron->hour->toString();
echo $cron->dayOfMonth->toString();
echo $cron->month->toString();
echo $cron->dayOfWeek->toString();
use Bakame \Cron \Expression ;
$cron = Expression::fromString('3-59/15 6-12 */15 1 2-5' );
echo $cron->minute->toString();
echo json_encode($cron->hour);
echo $cron->toString();
echo json_encode($cron);
echo json_encode($cron->toFields());
use Bakame \Cron \Expression ;
$cron = Expression::fromString('3-59/15 6-12 */15 1 2-5' );
echo $cron->withMinute('2' )->toString();
echo $cron->withHour($cron->month)->toString();
echo $cron->withDayOfMonth(2 )->toString();
echo $cron->withMonth('2' )->toString();
echo $cron->withDayOfWeek(2 )->toString();
use Bakame \Cron \Expression ;
echo Expression::fromString('@DaIlY' )->toString();
echo Expression::fromString('@DAILY' )->toString();
use Bakame \Cron \Expression ;
use Bakame \Cron \Scheduler ;
Expression::registerAlias('@every' , '* * * * *' );
Scheduler::fromUTC('@every' )->run('TODAY' , 2 )->format('c' );
use Bakame \Cron \Expression ;
use Bakame \Cron \Scheduler ;
if (!Expression::supportsAlias('@every' )) {
Expression::registerAlias('@every' , '* * * * *' );
}
Expression::aliases();
Expression::supportsAlias('@foobar' );
Expression::supportsAlias('@daily' );
Expression::supportsAlias('@every' );
Scheduler::fromUTC('@every' );
Expression::unregisterAlias('@every' );
Expression::unregisterAlias('@every' );
Expression::supportsAlias('@every' );
Scheduler::fromUTC('@every' );
Expression::unregisterAlias('@daily' );
bash
composer