在 EasyAdminBundle 中根据语言设置日期和日期时间列

Setting date and datetime columns dependent from language in EasyAdminBundle

我正在使用不同语言(英语和德语)的 EasyAdminBundle。但我现在遇到了问题,我想格式化日期和日期时间列。

例如,我想要英语格式 'd/m/Y H:i:s' 和德语格式 'd.m.Y H:i:s'。但是我在 symfony (EasyAdminBundle) 文档和互联网搜索中都没有找到解决方案。

你能帮帮我吗?

注意:我发现可以使用 "format" 参数设置日期格式(示例:- { 属性: 'password', label: 'Password', format : 'd/m/Y H:i:s' }), 但在我的例子中,格式应该根据用户设置的语言来设置。

我在 symfony 4 中使用 EasyAdminBundle 找到了更好的解决方案。

我在 templates\bundles\EasyAdminBundle\default\field_datetime.html.twig 中覆盖了以下代码:

{%- if(app.request.getLocale() == 'de') -%}
    {%- set valueTitle = value|date('d.m.Y H:i:s') -%}
    {%- set valueText = value|date('d.m.Y H:i:s')|replace({' ': ' '}) -%}
{%- else -%}
    {%- set valueTitle = value|date('m/d/Y H:i:s') -%}
    {%- set valueText = value|date('m/d/Y H:i:s')|replace({' ': ' '}) -%}
{%- endif -%}
<time datetime="{{ value|date('c') }}" title="{{ valueTitle }}">{{ valueText|raw }}</time>

如果语言环境发生变化,则会生成另一种日期格式。