pointybeard/helpers-functions-time

A collection of functions used to manipulate time values

1.1.0 2020-04-17 02:24 UTC

This package is auto-updated.

Last update: 2024-04-17 11:10:33 UTC


README

A collection of functions used to manipulate time values

Installation

This library is installed via Composer. To install, use composer require pointybeard/helpers-functions-time or add "pointybeard/helpers-functions-time": "~1.1.0" to your composer.json file.

And run composer to update your dependencies:

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update

Requirements

This library makes use of the pointybeard/helpers-exceptions-readabletrace package. It is installed automatically via composer.

To include all the PHP Helpers packages on your project, use composer require pointybeard/helpers or add "pointybeard/helpers": "~1.2.0" to your composer file.

Usage

This library is a collection convenience function for common tasks relating to time. They are included by the vendor autoloader automatically. The functions have a namespace of pointybeard\Helpers\Functions\Time

The following functions are provided:

  • human_readable_time(int $seconds, ?int $flags = FLAG_PAD_STRING | FLAG_INCLUDE_HOURS): string
  • seconds_to_weeks($seconds): float
  • seconds_to_days($seconds): float
  • seconds_to_hours($seconds): float
  • seconds_to_minutes($seconds): float
  • weeks_to_seconds($weeks)
  • days_to_seconds($days)
  • hours_to_seconds($hours)
  • minutes_to_seconds($minutes)

Example usage:

<?php

declare(strict_types=1);

include __DIR__.'/vendor/autoload.php';

use pointybeard\Helpers\Functions\Time;

$seconds = 9064442;

var_dump(
    Time\seconds_to_weeks($seconds),
    // float(14.987503306878)

    Time\seconds_to_days($seconds),
    // float(104.91252314815)

    Time\seconds_to_hours($seconds),
    // float(2517.9005555556)

    Time\seconds_to_minutes($seconds),
    // float(151074.03333333)

    Time\weeks_to_seconds(Time\seconds_to_weeks($seconds)),
    // float(9064442)

    Time\days_to_seconds(Time\seconds_to_days($seconds)),
    // float(9064442)

    Time\hours_to_seconds(Time\seconds_to_hours($seconds)),
    // float(9064442)

    Time\minutes_to_seconds(Time\seconds_to_minutes($seconds)),
    // float(9064442)

    Time\human_readable_time($seconds),
    // string(21) "2517 hr 54 min 02 sec"

    Time\human_readable_time(
        $seconds,
        Time\FLAG_INCLUDE_WEEKS |
        Time\FLAG_INCLUDE_DAYS |
        Time\FLAG_INCLUDE_HOURS |
        Time\FLAG_PAD_STRING
    ),
    // string(34) "14 wks 06 days 21 hr 54 min 02 sec"

    Time\human_readable_time($seconds, null),
    // string(16) "151074 min 2 sec"

    Time\human_readable_time(0),
    // string(5) "0 sec"
);

try {
    Time\human_readable_time('not a number');
} catch (TypeError $e) {
    var_dump($e->getMessage());
}
// string(182) "Argument 1 passed to pointybeard\Helpers\Functions\Time\human_readable_time() must be of the type int, string given, called in /var/sources/helpers-functions-time/test.php on line 43"

try {
    Time\human_readable_time(-$seconds);
} catch (Exception $e) {
    var_dump($e->getMessage());
}
// string(55) "Value provided for $seconds must be a positive integer."

Support

If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request.

Contributing

We encourage you to contribute to this project. Please check out the Contributing documentation for guidelines about how to get involved.

License

"PHP Helpers: Time Functions" is released under the MIT License.