PHP code example of yakub / cron-time
1. Go to this page and download the library: Download yakub/cron-time 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');
/* Start to develop here. Best regards https://php-download.com/ */
yakub / cron-time example snippets
$cronTime = \Yakub\CronTime\Main::create([
['raw' => '* 8-14 * * mon-fri'],
['raw' => '* 12 * * mon-fri', 'open' => false],
['raw' => '* 8 * * wed', 'open' => false],
]);
$cronTime->isExecutable('mon 08:00:00'); // Return true
$cronTime->isExecutable('mon 07:59:59'); // Return false
$cronTime->isExecutable('tue 8:00:00'); // Return false
$cronTime->isExecutable('tue 14:59:59'); // Return false
$cronTime->isExecutable('wed 09:00:00'); // Return true
$cronTime->isExecutable('wed 08:59:59'); // Return false
$cronTime = \Yakub\CronTime\Main::create([
['raw' => '* 9-16 * * mon-fri'],
['raw' => '* 12 * * thu-fri', 'open' => false]
]);
$cronTime->getOpenDuration('mon 00:00', 'mon 23:59'); // Return 28800 (8h in seconds)
$cronTime->getOpenDuration('fri 00:00', 'fri 23:59'); // Return 25200 (7h in seconds)
$cronTime->getOpenDuration('fri 10:30', 'fri 14:49:12'); // Return 11952 (3h 19m 12s in seconds)
$cronTime = \Yakub\CronTime\Main::create([
['raw' => '* 9-16 * * mon-fri'],
['raw' => '* 12 * * thu-fri', 'open' => false]
]);
$cronTime->getFutureOpenDateTime(20, 'mon 9:20:12')->format('H:i:s'); // Return 09:20:32
$cronTime->getFutureOpenDateTime(60 * 60 * 3, 'mon 9:20:12')->format('H:i:s'); // Return 12:20:12
// Over days
$cronTime = \Yakub\CronTime\Main::create([
['raw' => '* 9-16 * * mon-fri'],
['raw' => '* 10,12,14 * * mon-fri', 'open' => false],
['raw' => '* * 12-14 4 ', 'open' => false]
]);
// Return 2020-06-24 11:20:17
$cronTime->getFutureOpenDateTime(60 * 60 * 3 + 5, '2020-06-23 15:20:12')->format('Y-m-d H:i:s');
// Return 2023-10-27 15:20:12
$cronTime->getFutureOpenDateTime(60 * 60 * 24 * 30 * 6, '2020-06-23 15:20:12')->format('Y-m-d H:i:s');
$cronTime = \Yakub\CronTime\Main::create([
['raw' => '* 9-16 * * mon-fri'],
['raw' => '* * 12,13 mar', 'open' => false],
['raw' => '* 12-23 16 mar', 'open' => false],
['raw' => '* 12 20 mar', 'open' => false]
]);
/**
* Return array
* [
* '2020-06-30' => [['from' => 32400, 'to' => 61199]],
* '2020-07-01' => [['from' => 32400, 'to' => 61199]],
* '2020-07-02' => [['from' => 32400, 'to' => 61199]],
* '2020-07-03' => [['from' => 32400, 'to' => 61199]],
* '2020-07-06' => [['from' => 32400, 'to' => 61199]]
* ]
*/
$cronTime->getScheduleForOpenedDays(5, '2020-06-30');
/**
* Return array
* [
* '2020-03-09' => [['from' => 32400, 'to' => 61199]],
* '2020-03-10' => [['from' => 32400, 'to' => 61199]],
* '2020-03-11' => [['from' => 32400, 'to' => 61199]],
* '2020-03-16' => [
* ['from' => 32400, 'to' => 43199]
* ],
* '2020-03-17' => [['from' => 32400, 'to' => 61199]],
* '2020-03-18' => [['from' => 32400, 'to' => 61199]],
* '2020-03-19' => [['from' => 32400, 'to' => 61199]],
* '2020-03-20' => [
* ['from' => 32400, 'to' => 43199],
* ['from' => 46800, 'to' => 61199]
* ],
* '2020-03-23' => [['from' => 32400, 'to' => 61199]],
* ]
*/
$cronTime->getScheduleForOpenedDays(9, '2020-03-09')
$cron = new Yakub\CronTime\Model\Cron();
// Same as
$cron = new Yakub\CronTime\Model\Cron(['raw' => '*']);
// Same as
$cron = new Yakub\CronTime\Model\Cron(['raw' => '* * * * * * *']);
// Definition without seconds
// Each minute between 8 and 17 hour
$cron = new Yakub\CronTime\Model\Cron(['raw' => '* 8-17']);
// Definition with seconds
// Every 0,15,30,45 second each minute between 8 and 17 hour
$cron = new Yakub\CronTime\Model\Cron(['raw' => '*/15 * 8-17 * * * *']);
// Definition with aliases
$cron = new Yakub\CronTime\Model\Cron(['raw' => '* 8-17 * mar-jun mon,wed-fri']);
// Alternative definition when raw is not setted
$cron = new Yakub\CronTime\Model\Cron([
// 'second' => '*',
// 'minute' => '*',
'hour' => '8-17',
// 'day' => '*',
// 'month' => '*',
'dayOfWeek' => 'mon-fri'
// 'year' => '*'
]);
$cron = new Yakub\CronTime\Model\Cron();
$cron->isOpen(); // Return true
$cron->getSecond(); // Return [['from' => 0, 'to' => 59]]
$cron->getMinute(); // Return [['from' => 0, 'to' => 59]]
$cron->getHour(); // Return [['from' => 0, 'to' => 23]]
$cron->getDay(); // Return [['from' => 1, 'to' => 31]]
$cron->getMonth(); // Return [['from' => 1, 'to' => 12]]
$cron->getDayOfWeek(); // Return [['from' => 1, 'to' => 7]]
$cron->getYear(); // Return [['from' => 1900, 'to' => 3000]]
$cron = new Cron(['raw' => '* 8-14 * * mon-fri']);
$cron->getFirstRunDateTime()->format('Y-m-d H:i:s'); // Return 1900-01-01 08:00:00
$cron->getLastRunDateTime()->format('Y-m-d H:i:s'); // Return 3000-12-26 14:59:59
$cron = new Cron(['raw' => '* 8-14 * * mon-fri']);
$ret = $cron->isExecutable('mon 9:31'); // Return true
$ret = $cron->isExecutable('wed 15:00'); // Return false