在我的树枝视图中,我想显示一个日期:
{{ match.date|date("l d F - H:i") }}
此日期以英文显示:
Wednesday 15 June - 15:30
我想用法语展示......
我之前尝试添加setlocale(LC_TIME, "fr_FR");
来调用视图,但日期仍以英文显示...
答案 0 :(得分:4)
Twig中的date
过滤器不适合本地化日期格式化,因为它基于PHP的DateTime::format
。一种选择是使用由Intl Extension提供的localizeddate
过滤器。
默认Symfony安装不提供此扩展。您可以在官方的Twig扩展存储库中找到它:
composer require twig/extensions
然后,只需将此扩展名声明为services.yml
中的服务,例如:
services:
twig.extension.intl:
class: Twig_Extensions_Extension_Intl
tags:
- { name: twig.extension }
答案 1 :(得分:2)
您可以使用hash(键值数组)并将其与您正在操作的日期对象进行匹配。
例如,用文字来表达今天的一周:
{% set trans_day_hash = {
"Monday": "Lundi",
"Tuesday": "Mardi",
"Wednesday": "Mercredi",
"Thursday": "Jeudi",
"Friday": "Vendredi",
"Saturday": "Samedi",
"Sunday": "Dimanche"
}
%}
{{ trans_day_hash["now"|date('l')] }}
答案 2 :(得分:0)
另一个好的做法是:
{{ match.date|date("l")|trans }}
通过这种方式,您可以使用自己喜欢的翻译文件进行翻译。
答案 3 :(得分:0)
我将format_datetime
twig filter与locale
和pattern
参数一起使用,如下所示:
{{ service.date|format_datetime(locale='fr',pattern="EEEE dd MMMM YYYY") }}
其输出例如:
vendredi 27 novembre 2020
lundi 02 novembre 2020
vendredi 30 octobre 2020
see this resource用于日期格式。