This is a simple library for interacting with time durations. You can write your code to expect time and know that is what you have:
function sleep(\Withinboredom\Time\Time $time): void {
\sleep($time->as(\Withinboredom\Time\TimeUnit::Seconds));
}
sleep(\Withinboredom\Time\Minutes(5));
All values of the same time are always strongly equaled to each other:
\Withinboredom\Time\Minutes(60) === \Withinboredom\Time\Hours(1)
There are also a few utility methods:
->add(Time)->subtract(Time): AnyTime
Add and subtract durations.
->toDateInterval(): DateInterval
Creates a date interval for use in other things.
Why not months/years?
There's no set days in a month/year, so it’s better to use DateInterval
for those types of measures.
Why does this exist?
I don’t like magic numbers.
How performant is this?
The main overhead is in autoloading and function-call overhead. Thus, if realtime performance is a concern, you might want to stick to magic numbers.
If you wish to create a PR or update the code here:
composer install
to install test dependenciesyarn
to install git hooks for formattingPer coding styles are followed.