在TWIG文件中
{{ comments.created|date('l, F j, Y') }}
Thursday, July 25, 2013
显示默认区域设置英语。我们如何以其他语言格式显示。德语、土耳其语等
使用以下代码片段创建您自己的Twig函数locale_date
。它从Symfonys Request
对象读取当前区域设置,并使用PHPs IntlDateFormatter
以格式化给定日期。
<?php
namespace AppTwig;
use SymfonyComponentHttpFoundationRequestStack;
use TwigExtensionAbstractExtension;
use TwigTwigFilter;
use TwigTwigFunction;
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);
}
}
在Twig:中的使用
{{ blog.createdAt|locale_date('d. MMMM yyyy') }}
Twig变量必须是DateTime
对象。
只需设置所需的格式
{{ comments.created|date('d.m.Y') }}