Need help with KnpTimeBundle?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

KnpLabs
490 Stars 104 Forks MIT License 306 Commits 7 Opened issues

Description

Provides helpers for time manipulation

Services available

!
?

Need anything else?

Contributors list

Friendly ago dates ("5 minutes ago")!

This bundle does one simple job: takes dates and gives you friendly "2 hours ago"-type messages. Woh!

Last edited {{ post.updatedAt|ago }}

Want to see it used in a screencast 🎥? Check out SymfonyCasts: https://symfonycasts.com/screencast/symfony-doctrine/ago

The date formatted can be translated into any language, and many are supported out of the box.

INSTALLATION

Use Composer to install the library:

composer require knplabs/knp-time-bundle

Woo! You did it! Assuming your project uses Symfony Flex, the bundle should be configured and ready to go. If not, you can enable

Knp\Bundle\TimeBundle\KnpTimeBundle
manually.

USAGE

In Twig:

{{ someDateTimeVariable|ago }}

... or use the equivalent function: {{ time_diff(someDateTimeVariable) }}

Note: the "ago" filter works fine for dates in the future, too.

In controllers

You can also "ago" dates inside PHP by autowiring the

Knp\Bundle\TimeBundle\DateTimeFormatter
service:
use Knp\Bundle\TimeBundle\DateTimeFormatter;
// ...

public function yourAction(DateTimeFormatter $dateTimeFormatter) { $someDate = new \DateTime('2017-02-11'); //or $entity->publishedDate() $now = new \DateTime();

$agoTime = $dateTimeFormatter->formatDiff($someDate, $now);
return $this->json([
    ...
    'published_at' => $agoTime
    ...
]);

}

Controlling the Translation Locale

The bundle will automatically use the current locale when translating the "ago" messages. However, you can override the locale:

{{ someDateTimeVariable|ago(locale='es') }}

TESTS

If you want to run tests, please check that you have installed dev dependencies.

./vendor/bin/simple-phpunit

Maintainers

Anyone can contribute to this repository (and it's warmly welcomed!). The following people maintain and can merge into this library:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.