我有一个网站列出了使用symfony2和mongodb
的产品我使用创建日期将项目添加到mongodb中,并且需要在我的树枝模板中显示所有项目。
对于此
在我的控制器中,我将数组项目列表传递给了twig模板。
我的树枝模板
{% for item in itemlist %}
<h4>{{item.name}}</h4>
<p>{{item.name}}</p>
{{item.createdate}}
{% endfor %}
这里我没有收到item.createdate
如何在树枝模板中直接显示mongo日期?
这是否有任何树枝延伸?
答案 0 :(得分:3)
{{ sampleDate.sec|date('Y-m-d') }}
答案 1 :(得分:1)
这是一个可能适合你的扩展类:
class MongoDateExtension extends \Twig_Extension
{
/**
* @inheritdoc
*/
public function getName()
{
return 'mongoDate_extension';
}
public function getFilters()
{
return array(
new \Twig_SimpleFilter('convertMongoDate', array($this, 'convertMongoDateFilter')),
);
}
public function convertMongoDateFilter(\MongoDate $mongoDate)
{
return new \DateTime('@' . $mongoDate->sec);
}
}
然后通过将以下代码段添加到services.xml,将类注册到依赖项注入容器。请考虑您必须在示例中调整类路径。
<service id="twig.extension.mongo_date"
class="Path\To\Your\Bundle\Twig\Extension\MongoDateExtension">
<tag name="twig.extension"/>
</service>
扩展程序会将mongo日期转换为php \ DateTime对象。它将以秒的精度执行转换,因此如果您还需要微秒,则需要调整扩展名。
最后在你的树枝模板中,你可以使用树枝日期格式扩展名:
{{ sampleDate|convertMongoDate|date('Y-m-d') }}
将打印 2013-11-05
答案 2 :(得分:0)
我使用秒时遇到了时区问题。 相反,我使用了 toDateTime ,效果很好。
{{ sampleDate.toDateTime|date('Y-m-d') }}
答案 3 :(得分:0)
我发现的最简单的方法是:
{{ event.begin.toDateTime()|date("d/m/Y H:i:s") }}