sto*_*fln 7 datetime localization symfony
有人能告诉我如何在Symfony2中切换语言环境日期格式吗?
无论我在config(framework.session.default_locale)中设置什么,这总是以英语返回工作日(我需要工作日用德语):
$start->format("D d.m.Y");
Run Code Online (Sandbox Code Playgroud)
当我输出默认语言环境时,它总是返回"de"BTW,无论我在config.yml中设置什么
echo \Locale::getDefault()
Run Code Online (Sandbox Code Playgroud)
附加信息:
我希望能够在我的本地系统和实时服务器上正确输出日期(意味着正确的德语工作日)格式化日期.尝试使用strftime,它使用系统安装的语言环境并且遇到了麻烦,因为语言环境包在live和dev机器上有不同的命名方案.这里还有另外一个问题: PHP:为什么我在服务器上的日期格式不同?
Symfony2在其核心中不提供任何日期格式化程序.
它所做的就是\Locale::getDefault()
通过嗅探会话和请求来配置值.
您必须提供一些额外的服务来处理每个区域设置格式,例如SonataIntlBundle.
此捆绑包在扩展中添加了一些树枝过滤器,并提供了一些可以在任何地方使用的帮助程序.
激活后,您可以在模板中使用它们,例如:
{{ my_date|format_datetime }}
Run Code Online (Sandbox Code Playgroud)
更多信息:https://github.com/sonata-project/SonataIntlBundle/blob/master/Resources/doc/reference/datetime.rst
小智 4
我在我的项目中使用这样的代码来格式化日期(您需要打开 php 的 intl 扩展):
<?php
class DefaultController extends Controller {
public function indexAction() {
$date = new \DateTime("now");
$formatter = new \IntlDateFormatter(\Locale::getDefault(), \IntlDateFormatter::NONE, \IntlDateFormatter::NONE);
$formatter->setPattern("EEEE Y-M-d");
return array('locale' => \Locale::getDefault(), "intl" => $formatter->format($date));
}
Run Code Online (Sandbox Code Playgroud)
它对我来说效果很好。如何创建格式化模式,您可以在以下位置找到 http://userguide.icu-project.org/formatparse/datetime找到
但我没有找到 twig 的助手,所以你可以创建自己的
归档时间: |
|
查看次数: |
8804 次 |
最近记录: |