bayfrontmedia / php-time-helpers
Helper class to provide useful time related functions.
Installs: 1 228
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: ^8.0
- bayfrontmedia/php-array-helpers: ^2.0
This package is auto-updated.
Last update: 2024-11-26 21:20:25 UTC
README
Helper class to provide useful time related functions.
License
This project is open source and available under the MIT License.
Author
Requirements
- PHP
^8.0
Installation
composer require bayfrontmedia/php-time-helpers
Usage
- getReadTime
- getDateTime
- isLeapYear
- humanArray
- human
- isTimezone
- isFormat
- inPast
- inFuture
- isBefore
- isAfter
- stopwatch
getReadTime
Description:
Get estimated minutes necessary to read content, based on reading a given amount of words per minute (WPM).
Parameters:
$content
(string)$wpm = 180
(int)
Returns:
- (int)
Example:
use Bayfront\TimeHelpers\Time;
$content = 'This is a string of content.';
echo Time::getReadTime($content);
getDateTime
Description:
Returns datetime of a given timestamp, or current time (default).
Parameters:
$timestamp = NULL
(int|null)
Returns:
- (string)
Example:
use Bayfront\TimeHelpers\Time;
echo Time::getDateTime();
isLeapYear
Description:
Checks if a given year is a leap year, using current year by default.
Parameters:
$year = NULL
(int|null): Four digit year, PHPdate('Y')
format
Returns:
- (bool)
Example:
use Bayfront\TimeHelpers\Time;
if (Time::isLeapYear()) {
// Do something
}
humanArray
Description:
Returns human time as an array.
NOTE: Due to discrepancies between the length of certain months and years (ie: leap year), elapsed time calculations for these units of time are approximate (30 days per month, 365 days per year).
Parameters:
$time_start
(int): Timestamp of starting time$time_end
(int): Timestamp of ending time$limit = 'year'
(string): Limit of time duration to calculate$language = NULL
(array|null): Custom language to return
Valid $limit
values are:
year
month
week
day
hour
minute
second
Passing a $language
array allows you to translate the words returned by this method. The array keys must match those of the default array, which is:
$language = [
'year' => 'year',
'years' => 'years',
'month' => 'month',
'months' => 'months',
'week' => 'week',
'weeks' => 'weeks',
'day' => 'day',
'days' => 'days',
'hour' => 'hour',
'hours' => 'hours',
'minute' => 'minute',
'minutes' => 'minutes',
'second' => 'second',
'seconds' => 'seconds',
'past' => 'ago',
'present' => 'just now',
'future' => 'to go'
];
Returns:
- (array)
Example:
use Bayfront\TimeHelpers\Time;
$start = time();
$end = time() + 51001;
print_r(Time::humanArray($start, $end, 'minute'));
human
Description:
Returns human time as a string.
For more information, see humanArray.
Parameters:
$time_start
(int): Timestamp of starting time$time_end
(int): Timestamp of ending time$limit = 'year'
(string): Limit of time duration to calculate$language = NULL
(array| null): Custom language to return
Returns:
- (string)
Example:
use Bayfront\TimeHelpers\Time;
$start = time();
$end = time() + 51001;
echo Time::human($start, $end);
isTimezone
Description:
Checks if string is a valid timezone identifier.
See: https://www.php.net/manual/en/timezones.php
Parameters:
$timezone
(string)
Returns:
- (bool)
Example:
use Bayfront\TimeHelpers\Time;
if (Time::isTimezone('America/New_York')) {
// Do something
}
isFormat
Description:
Checks if value is a given dateTime format.
See: https://www.php.net/manual/en/function.date.php
Parameters:
$date
(string)$format
(string): Any valid date/time format$strict = 'true'
(bool)
Returns:
- (bool)
Example:
use Bayfront\TimeHelpers\Time;
$date = '2020-07-18';
if (Time::isFormat($date, 'Y-m-d')) {
// Do something
}
inPast
Description:
Checks if date/time is in the past.
See: https://www.php.net/manual/en/datetime.formats.php
Parameters:
$date
(string): Any valid date/time format
Returns:
- (bool)
Example:
use Bayfront\TimeHelpers\Time;
if (Time::inPast('last Tuesday')) {
// Do something
}
inFuture
Description:
Checks if date/time is in the future.
See: https://www.php.net/manual/en/datetime.formats.php
Parameters:
$date
(string): Any valid date/time format
Returns:
- (bool)
Example:
use Bayfront\TimeHelpers\Time;
if (Time::inFuture('2050-12-31')) {
// Do something
}
isBefore
Description:
Checks if date/time is before a given date/time.
See: https://www.php.net/manual/en/datetime.formats.php
Parameters:
$date
(string): Any valid date/time format$before
(string): Any valid date/time format
Returns:
- (bool)
Example:
use Bayfront\TimeHelpers\Time;
if (Time::isBefore('today', '2050-12-31')) {
// Do something
}
isAfter
Description:
Checks if date/time is after a given date/time.
See: https://www.php.net/manual/en/datetime.formats.php
Parameters:
$date
(string): Any valid date/time format$after
(string): Any valid date/time format
Returns:
- (bool)
Example:
use Bayfront\TimeHelpers\Time;
if (Time::isAfter('today', '2050-12-31')) {
// Do something
}
stopwatch
Description:
Return the amount of time (in seconds) the callback took to execute.
Parameters:
$callable
(callback)$times = 1
(int): Number of times to iterate the callback$decimals = 5
(int): Number of decimal places to round to
Returns:
- (float)
Example:
use Bayfront\TimeHelpers\Time;
$elapsed = Time::stopwatch(function() {
sleep(2);
}, 2);