0

私は Zend フレームワークが初めてで、ZF2 を使用して簡単なアプリを構築しようと決めました。

テーブル ゲートウェイが AbstractTableGateway を拡張するデータベースから取得されている日付があります。これはデータを正しく取得していますが、Zend_Date を使用して日付をフォーマットし、モデル/ビューで文字列表現を自分で操作したくありません。

私がこれを行う方法について誰かアイデアがありますか?

4

2 に答える 2

8

もう 1 つのオプションは、既に存在する ViewHelper \Zend\I18n\View\Helper\DateFormatです。

このようにして、ビュー スクリプトが国際化 (i18n) の準備が整っていること、およびすべてのページ ビューアーがそれぞれの形式で日付を表示できることを確認できます。

これには、php_intl 拡張機能を有効にする必要があります。

長い使用法は次のようになります。

echo $this->dateFormat(
    new DateTime(),
    IntlDateFormatter::MEDIUM, // date
    IntlDateFormatter::MEDIUM, // time
    "en_US"
);

ただし、AlloVince のアプローチと同様に、独自のビュー ヘルパーを作成することをお勧めします。このようにして、次のように書くことができます$this->myDateFormat($db->getDate())

于 2012-10-09T05:36:50.687 に答える
5

参照用のカスタム データタイム ヘルパーは次のとおりです。

https://github.com/AlloVince/eva-engine/blob/master/vendor/Eva/View/Helper/Datetime.php

このヘルパーを呼び出し可能なヘルパー サービスとしてモジュール構成ファイルに登録します

'view_helpers' => array(
    'invokables' => array(
        'datetime' => 'Eva\View\Helper\Datetime',
    ),  
),

次に、次のようにしてビューで呼び出します。

$this->datetime(time(), 0, 'Y-m-d');  //2012-10-09
$this->datetime()->jsTime(time()); //Sat Oct 6 17:16:05 UTC+0800 2012
于 2012-10-09T02:25:51.403 に答える