oneletter / human-date
0.1
2018-02-12 17:08 UTC
Requires (Dev)
- phpunit/phpunit: ^6.1
This package is auto-updated.
Last update: 2025-08-15 01:54:09 UTC
README
Class for formatting date intervals.
Install
composer require oneletter/human-date
Usage
<?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.
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:
$ composer run test
License
The human-date is open-sourced software licensed under the MIT license.