2

symfony2 と mongodb を使用して製品を一覧表示する Web サイトがあります。

アイテムを作成日でmongodbに追加し、小枝テンプレートにすべてのアイテムを表示する必要があります。

このため

私のコントローラーでは、配列 itemlist を twig テンプレートに渡しました。

私の小枝のテンプレート

{% for item in itemlist %}
<h4>{{item.name}}</h4>
<p>{{item.name}}</p>
{{item.createdate}}
{% endfor %}

ここで item.createdate を取得していません

小枝テンプレートでモンゴ日付を直接表示するには?

これには小枝の拡張機能がありますか?

4

4 に答える 4

4
{{ sampleDate.sec|date('Ymd') }}
于 2015-11-11T11:44:01.683 に答える
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を出力します

于 2013-11-05T15:55:17.793 に答える