在 TWIG 文件中
{{ comments.created|date('l, F j, Y') }}
Thursday, July 25, 2013
显示默认语言环境英语。我们如何以其他语言格式显示。德语、土耳其语等
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
对象。
只需设置所需的格式
{{ comments.created|date('d.m.Y') }}