smhg / date-frequency
Temporal frequency library
Installs: 1 212
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=8.1
Requires (Dev)
- phpmd/phpmd: ^2.8
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
README
Temporal frequency library
PHP clone of JavaScript version.
Installation
$ composer require smhg/date-frequency
Methods
Frequency
use Frequency\Frequency; $frequency = new Frequency(); $frequency->on('day', 3, 'week') ->on('hour', 10) ->on('minute', 0) ->on('seconds', 0); // every Wednesday at 10:00:00
Frequency([string rules])
Frequency([array rules])
Pass rules as a string (see __toString
) or an array to the constructor instead of setting them one-by-one with on()
.
Example above as a string: $frequency = new Frequency('F3D/WT10H0M0S');
on(string unit, int|string value, [string scope])
Add a rule (fixed integer value or a string representing the name of a filter function) to the frequency for a unit, optionally linked to a scope (if not provided, a default scope is derived).
Filter functions need to be available in the static Frequency::$fn
array when used.
Example filter: $frequency = new Frequency('F(leap)Y1M1DT0H0M0S');
(Jan 1st, at midnight, of leap years)
See tests for more examples.
next(DateTime start = new DateTime())
Get the next occurence of the frequency on or after a date.
between(DateTime start, DateTime end)
Get all occurences of the frequency between 2 dates.
__toString()
Convert frequency to a string value.