【问题标题】:Setting date and datetime columns dependent from language in EasyAdminBundle根据 EasyAdminBundle 中的语言设置日期和日期时间列
【发布时间】:2019-06-16 20:23:46
【问题描述】:
我正在使用不同语言(英语和德语)的 EasyAdminBundle。但我现在遇到了我想格式化日期和日期时间列的问题。
例如,我想在英语中使用“d/m/Y H:i:s”格式,在德语中使用“d.m.Y H:i:s”格式。但是我在 symfony (EasyAdminBundle) 文档和互联网搜索中都没有找到解决方案。
你能帮帮我吗?
注意:我发现可以使用“format”参数设置日期格式(例如:- { property: 'password', label: 'Password', format: 'd/m/Y H:i:s' }),但在我的情况下,格式应根据用户设置的语言设置。
【问题讨论】:
标签:
php
symfony
symfony2-easyadmin
easyadmin
【解决方案1】:
我在 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>
如果更改了区域设置,则会生成另一种日期格式。