1

在 TWIG 文件中

     {{ comments.created|date('l, F j, Y') }}

     Thursday, July 25, 2013

显示默认语言环境英语。我们如何以其他语言格式显示。德语、土耳其语等

4

2 回答 2

0

locale_date使用以下代码片段创建您自己的 Twig 函数。它从 SymfonysRequest对象中读取当前的语言环境,并使用 PHPIntlDateFormatter来格式化给定的日期。

<?php

namespace App\Twig;

use Symfony\Component\HttpFoundation\RequestStack;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
use Twig\TwigFunction;

class LocaleDateExtension extends AbstractExtension {

    private $requestStack;

    public function __construct(RequestStack $requestStack) {
        $this->requestStack = $requestStack;
    }

    public function getFilters(): array {
        return [
            new TwigFilter('locale_date', [$this, 'localeDate']),
        ];
    }

    public function getFunctions(): array {
        return [
            new TwigFunction('locale_date', [$this, 'localeDate']),
        ];
    }

    public function localeDate(\DateTimeInterface $date, $format) {
        $formatter = new \IntlDateFormatter(
                $this->requestStack->getCurrentRequest()->getLocale(),
                \IntlDateFormatter::NONE,
                \IntlDateFormatter::NONE
        );
        $formatter->setPattern($format);
        return $formatter->format($date);
    }

}

树枝中的用法:

{{ blog.createdAt|locale_date('d. MMMM yyyy') }}

Twig 变量必须是一个DateTime对象。

于 2021-06-11T11:20:05.750 回答
-3

只需设置所需的格式

{{ comments.created|date('d.m.Y') }}
于 2013-07-26T06:47:44.850 回答