This library was created to make parsing time entered into a task manager as easy as it is on popular apps like Harvest or Tempo for JIRA.
- PHP 7.2 or higher
- Composer (if used as library)
composer require magicspacepanda/time-duration
use MagicSpacePanda\TimeDuration;
// Handles durations as a float (1 hour and 45 minutes)
$floatTime = TimeDuration::createFromNumeric(1.75);
printf("Time spend on project is %s", $floatTime);
// Handles durations as an integer (3 hours)
$intTime = TimeDuration::createFromNumeric(1);
printf("Time spend on project is %s", $intTime);
// Handles durations as a string (5 hours and 25 minutes)
$strTime = TimeDuration::createFromString('5h 25m');
printf("Time spend on project is %s", $strTime);
// Convert output to DateTime instance
$floatTime->toDateTime();
// Convert output to custom format
$intTime->toFormat('H:i');
// Convert output to machine-friendly milliseconds
$strTime->toMilliseconds();
If you would like to contribute to this library, please create a pull request for me to review. Should your code be accepted I will add your name below.