eschmar/time-ago-bundle
TimeAgoBundle provides a simple Twig filter for Symfony that expresses time differences in words, returning actual dates beyond ±7 days. Supports many languages, configurable date format, and future times. Install via Composer; works with Symfony 2.8–5.x.
EschmarTimeAgoBundle in AppKernel pre-4, auto-discovery on 4+/5+) plus a Twig extension. Laravel has no bundle kernel and, by default, no Twig — the view layer is Blade. You cannot composer require this into a Laravel app and get a working filter. Only the underlying capability (relative-time formatting + translation strings) transfers, and that capability is a few dozen lines of date arithmetic.|ago Twig filter renders a time difference in words within a ±7-day window; beyond that it falls back to a formatted date (Y-m-d H:i:s by default, configurable via eschmar_time_ago.format). Handles both directions ("3 minutes ago", "in 4 hours"). Ships 26 locale translation catalogs.diffForHumans() covers most of the same surface with zero added dependency surface.readme, releases — no CI, no advertised test suite, no coverage. Consistent with the 5.885 score.date() pattern — unlocalized, and visually inconsistent next to relative strings in the same list.diffForHumans() already solves this for Laravel — why add a dependency?time_ago Blade directive or a small TimeAgoFormatter service around Carbon:
Carbon::parse($value)->locale($appLocale)->diffForHumans() for relative output;abs(now()->diffInDays($value)) <= 7, else ->format($configFormat);lang/. Keeps the asset, drops the abandonment risk. Attribution is the only obligation.composer require eschmar/time-ago-bundle ^2.0.0, confirm auto-registration on the actual Symfony minor, add eschmar_time_ago.format to config, smoke-test both the relative and the absolute branch.diffForHumans() per locale; that delta is the true cost of adopt-vs-build.date() pattern reads as a bug in every non-English locale.date('now')-style inputs producing off-by-hours relative strings.eschmar_time_ago.format set per environment, so staging and production render differently.diffForHumans() plus a short formatter service delivers the same user-facing behavior at a fraction of the operational risk. Low stars, zero dependents, low opportunity score (18.94), and a stale cadence all point the same way.How can I help you explore Laravel packages today?