danielstjules/php-pretty-datetime

Generates human-readable strings for PHP DateTime objects

Maintainers

👁 danielstjules

Package info

github.com/danielstjules/php-pretty-datetime

pkg:composer/danielstjules/php-pretty-datetime

Statistics

Installs: 98 886

Dependents: 1

Suggesters: 0

Stars: 57

Open Issues: 1

1.0.0 2018-08-23 06:05 UTC

Requires

  • php: >=5.3.0

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT c489c9052a2d2202e13f899fff98c043f6297910

timedatehumanstringdatetimeprettyreadable

This package is not auto-updated.

Last update: 2026-06-20 22:27:58 UTC


README

Generates human-readable strings for PHP DateTime objects. It handles dates in the past and future. For future dates, it uses the format 'In x unit', ie: 'In 1 minute'. For dates in the past, it uses 'x unit ago', ie: '2 years ago'.

Note: Comparison of dates, for those beyond a day apart, uses the difference between their Unix timestamps.

Installation

If you're using Composer to manage dependencies, you can include the following in your composer.json file:

"require": {
 "danielstjules/php-pretty-datetime": "~1.0.0"
}

Otherwise, you can simply require the file directly:

require_once 'path/to/php-pretty-datetime/src/PrettyDateTime.php';

Usage

use PrettyDateTime\PrettyDateTime;

PrettyDateTime::parse(new DateTime('now')); // Moments ago
PrettyDateTime::parse(new DateTime('+ 59 second')); // Seconds from now
PrettyDateTime::parse(new DateTime('+ 1 minute')); // In 1 minute
PrettyDateTime::parse(new DateTime('- 59 minute')); // 59 minutes ago

// You can supply a secondary argument to provide an alternate reference
// DateTime. The default is the current DateTime, ie: DateTime('now'). In
// addition, it takes into account the day of each DateTime. So in the next
// two examples, even though they're only a second apart, 'Yesterday' and
// 'Tomorrow' will be displayed

$now = new DateTime('1991-05-18 00:00:00 UTC');
$dateTime = new DateTime('1991-05-17 23:59:59 UTC');
PrettyDateTime::parse($dateTime, $now); // Yesterday

$now = new DateTime('1991-05-17 23:59:59 UTC');
$dateTime = new DateTime('1991-05-18 00:00:00 UTC');
PrettyDateTime::parse($dateTime, $now) // Tomorrow

Tests

👁 Build Status

From the project directory, tests can be ran using phpunit

License

Released under the MIT License - see LICENSE.txt for details.