human-date
Class for formatting date intervals., (*1)
Install
composer require oneletter/human-date
````
## Usage
```php
<?php
use OneLetter\Common\HumanDate;
$humanDate = new HumanDate('UTC', 'en');
$humanDate->format(new \DateTime('-1 day')); // yesterday at 3:18 pm
$humanDate->format(new \DateTime('-5 hours')); // today at 10:18 am
$humanDate->format(new \DateTime('-50 minutes')); // one hour ago
$humanDate->format(new \DateTime('-4 seconds')); // just now
$humanDate->format(new \DateTime('+1 day')); // tomorrow at 3:18 pm
$humanDate->format(new \DateTime('+5 hours')); // today at 8:18 pm
$humanDate->format(new \DateTime('+50 minutes')); // one hour ago
$humanDate->format(new \DateTime('+4 seconds')); // just now
Intervals
Class distinguishes in past and in future results, all possible results of class working are given in next table., (*2)
Past
| Interval |
Formatted |
| 0-5 seconds |
just now |
| 6-44 seconds |
xx seconds ago |
| 45 seconds โ 1 minute 44 seconds |
one minute ago |
| 1 minute 45 seconds โ 2 minute 44 seconds |
two minutes ago |
| 2 minute 45 seconds โ 3 minute 44 seconds |
three minutes ago |
| 3 minute 45 seconds โ 4 minute 44 seconds |
four minutes ago |
| 4 minute 45 seconds โ 45 minutes 44 seconds |
xx minutes ago |
| 45 minutes 45 seconds โ 1 hour 45 minutes 44 seconds |
one hour ago |
| 1 hour 45 minutes 45 seconds โ 2 hour 45 minutes 44 seconds |
two hours ago |
| 2 hour 45 minutes 45 seconds โ 3 hour 45 minutes 44 seconds |
three hours ago |
| 3 hour 45 minutes 45 seconds โ 4 hour 45 minutes 44 seconds |
four hours ago |
| today > 4 hour 45 minutes 45 seconds |
today at xx:xx |
| yesterday |
yesterday at xx:xx |
| > yesterday |
xx xx at xx:xx |
| > year |
xx xx xxxx at xx:xx |
Future
| Interval |
Formatted |
| 0-5 seconds |
right now |
| 6-44 seconds |
in a xx seconds |
| 45 seconds โ 1 minute 44 seconds |
in a one minute |
| 1 minute 45 seconds โ 2 minute 44 seconds |
in a two minutes |
| 2 minute 45 seconds โ 3 minute 44 seconds |
in a three minutes |
| 3 minute 45 seconds โ 4 minute 44 seconds |
in a four minutes |
| 4 minute 45 seconds โ 45 minutes 44 seconds |
in a xx minutes |
| 45 minutes 45 seconds โ 1 hour 45 minutes 44 seconds |
in a one hour |
| 1 hour 45 minutes 45 seconds โ 2 hour 45 minutes 44 seconds |
in a two hours |
| 2 hour 45 minutes 45 seconds โ 3 hour 45 minutes 44 seconds |
in a three hours |
| 3 hour 45 minutes 45 seconds โ 4 hour 45 minutes 44 seconds |
in a four hours |
| today > 4 hour 45 minutes 45 seconds |
today at xx:xx |
| tomorrow |
tomorrow at xx:xx |
| > tomorrow |
xx xx at xx:xx |
| > year |
xx xx xxxx at xx:xx |
Tests
For tests run:, (*3)
$ composer run test, (*4)
License
The human-date is open-sourced software licensed under the MIT license., (*5)