salavert / time-ago-in-words
此包已被废弃,不再维护。未建议替代包。
时间过去 Twig 扩展,您可以使用它轻松地将日期时间或时间戳转换为时间距离文字。
v1.7.1
2019-04-06 14:54 UTC
Requires
- php: ^7.1
- twig/twig: ~1.12 || ~2
Requires (Dev)
- phpunit/phpunit: ^7.0
- symfony/symfony: 2.* || 3.*
README
这是一个为 Symfony 框架设计的 Twig 扩展,您可以使用它轻松地将日期时间/时间戳转换为时间距离文字。
例如
{{ user.lastLogin | time_ago_in_words }}
输出 3天前
Symfony 安装
-
更新您的 composer.json
-
注册一个扩展为服务
现在您必须让服务容器知道您新创建的 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