CronCommand
This class provides calculations for the cron command format.
Table of Contents
Properties
- $cronCommandSections : array<string|int, mixed>
- Normalized sections of the cron command.
- $timestamp : int
- Timestamp of next execution date.
Methods
- __construct() : mixed
- Constructor
- calculateNextValue() : mixed
- Calculates the date of the next execution.
- getCronCommandSections() : array<string|int, mixed>
- Get cron command sections. Array of strings, each containing either a list of comma separated integers or *
- getTimestamp() : int
- Get next timestamp
- dayMatchesCronCommand() : bool
- Determine if current timestamp matches day of month, month and day of week cron command restriction
- isInCommandList() : bool
- Determine if a given number validates a cron command section. The given cron command must be a 'normalized' list with only comma separated integers or '*'
- minuteAndHourMatchesCronCommand() : bool
- Determine if current timestamp matches minute and hour cron command restriction.
- numberOfSecondsInDay() : int
- Helper method to calculate number of seconds in a day.
- roundTimestamp() : int
- Round a timestamp down to full minute.
Properties
$cronCommandSections
Normalized sections of the cron command.
protected
array<string|int, mixed>
$cronCommandSections
Comma separated lists of integers and the character '*' are allowed.
field lower and upper bound
minute 0-59 hour 0-23 day of month 1-31 month 1-12 day of week 1-7
$timestamp
Timestamp of next execution date.
protected
int
$timestamp
This value starts with 'now + 1 minute' if not set externally by unit tests. After a call to calculateNextValue() it holds the timestamp of the next execution date which matches the cron command restrictions.
Methods
__construct()
Constructor
public
__construct(string $cronCommand[, bool|int $timestamp = false ]) : mixed
Parameters
- $cronCommand : string
-
The cron command can hold any combination documented as valid
- $timestamp : bool|int = false
-
Optional start time, used in unit tests
calculateNextValue()
Calculates the date of the next execution.
public
calculateNextValue() : mixed
Tags
getCronCommandSections()
Get cron command sections. Array of strings, each containing either a list of comma separated integers or *
public
getCronCommandSections() : array<string|int, mixed>
Return values
array<string|int, mixed> —command sections:
getTimestamp()
Get next timestamp
public
getTimestamp() : int
Return values
int —Unix timestamp
dayMatchesCronCommand()
Determine if current timestamp matches day of month, month and day of week cron command restriction
protected
dayMatchesCronCommand(int $timestamp) : bool
Parameters
- $timestamp : int
-
to test
Return values
bool —TRUE if cron command conditions are met
isInCommandList()
Determine if a given number validates a cron command section. The given cron command must be a 'normalized' list with only comma separated integers or '*'
protected
isInCommandList(string $commandExpression, int $numberToMatch) : bool
Parameters
- $commandExpression : string
-
cron command
- $numberToMatch : int
-
number to look up
Return values
bool —TRUE if number is in list
minuteAndHourMatchesCronCommand()
Determine if current timestamp matches minute and hour cron command restriction.
protected
minuteAndHourMatchesCronCommand(int $timestamp) : bool
Parameters
- $timestamp : int
-
to test
Return values
bool —TRUE if cron command conditions are met
numberOfSecondsInDay()
Helper method to calculate number of seconds in a day.
protected
numberOfSecondsInDay(int $timestamp) : int
This is not always 86400 (606024) and depends on the timezone: Some countries like Germany have a summertime / wintertime switch, on every last sunday in march clocks are forwarded by one hour (set from 2:00 to 3:00), and on last sunday of october they are set back one hour (from 3:00 to 2:00). This shortens and lengthens the length of a day by one hour.
Parameters
- $timestamp : int
-
Unix timestamp
Return values
int —Number of seconds of day
roundTimestamp()
Round a timestamp down to full minute.
protected
roundTimestamp(int $timestamp) : int
Parameters
- $timestamp : int
-
Unix timestamp
Return values
int —Rounded timestamp