salavert/time-ago-in-words

此包已被废弃,不再维护。未建议替代包。

时间过去 Twig 扩展,您可以使用它轻松地将日期时间或时间戳转换为时间距离文字。

v1.7.1 2019-04-06 14:54 UTC

This package is not auto-updated.

Last update: 2022-10-09 08:37:16 UTC


README

Packagist Build Status

这是一个为 Symfony 框架设计的 Twig 扩展,您可以使用它轻松地将日期时间/时间戳转换为时间距离文字。

例如

{{ user.lastLogin | time_ago_in_words }}

输出 3天前

Symfony 安装

  1. 更新您的 composer.json

    • Symfony 2/3 与 Twig 1/2

      "require": {
          "salavert/time-ago-in-words": "1.*"
      }

      或使用 composer 的 require 命令:composer require salavert/time-ago-in-words:1.*

    • Symfony 4 与 Twig 2/3

      "require": {
          "salavert/time-ago-in-words": "2.*"
      }

      或使用 composer 的 require 命令:composer require salavert/time-ago-in-words:2.*

  2. 注册一个扩展为服务

现在您必须让服务容器知道您新创建的 Twig 扩展

YAML

# app/config/config.yml
services:
    salavert.twig.time_ago:
        class: Salavert\Twig\Extension\TimeAgoExtension
        arguments: ["@translator"]
        tags:
            - { name: twig.extension }

XML

# or into your bundle src\Acme\AcmeBundle\Resources\config\services.xml
<service id="salavert.twig.time_ago" class="Salavert\Twig\Extension\TimeAgoExtension">
    <tag name="twig.extension" />
    <argument type="service" id="translator" />
</service>

使用方法

要显示日期和当前日期之间的时间距离文字

{{ message.created | time_ago_in_words }}

要显示两个自定义日期之间的时间距离,应使用

{{ message.created | distance_of_time_in_words(message.updated) }}

您还可以使用两个可用选项,对于 time_ago_in_words 和 distance_of_time_in_words 过滤器

  • include_seconds (布尔值) 如果您需要更详细的时间少于1分钟的秒数近似值
  • include_months (布尔值) 如果您想将天数近似到月份,如果时间超过31天。

因此,如果您想要月份近似值但不是秒数近似值,您应该使用

{{ message.created | time_ago_in_words(false, true) }}

翻译

将以下翻译添加到您的

  • \app\Resources\translations\messages.locale.yml
  • \translations\messages.locale.yml

这是西班牙语的翻译

# Time ago in words - Twig Extension
less than %seconds seconds ago: hace menos de %seconds segundos
half a minute ago: hace medio minuto
less than a minute ago: hace menos de un minuto
1 minute ago: hace 1 minuto
%minutes minutes ago: hace %minutes minutos
about 1 hour ago: hace casi 1 hora
about %hours hours ago: hace %hours horas
1 day ago: hace 1 día
%days days ago: hace %days días
"{1} 1 month ago |]1,Inf[ %months months ago": "{1} hace un mes |]1,Inf[ hace %months meses"
"{1} 1 year ago |]1,Inf[ %years years ago":  "hace un año |]1,Inf[ Hace %years años"

在相同的情况下,对于未来的

# Time ago in words - Twig Extension
in less than %seconds seconds: en menos de %seconds segundos
in half a minute: en medio minuto
in less than a minute: en menos de un minuto
in 1 minute: en 1 minuto
in %minutes minutes: en %minutes minutos
in about 1 hour: dentro de casi 1 hora
in about %hours hours: en %hours horas
in 1 day: en 1 día
in %days days: en %days días

测试

要启动所有测试,请首先确保满足 composer 的依赖关系,然后运行

./vendor/phpunit/phpunit/phpunit