私は Zend フレームワークが初めてで、ZF2 を使用して簡単なアプリを構築しようと決めました。
テーブル ゲートウェイが AbstractTableGateway を拡張するデータベースから取得されている日付があります。これはデータを正しく取得していますが、Zend_Date を使用して日付をフォーマットし、モデル/ビューで文字列表現を自分で操作したくありません。
私がこれを行う方法について誰かアイデアがありますか?
私は Zend フレームワークが初めてで、ZF2 を使用して簡単なアプリを構築しようと決めました。
テーブル ゲートウェイが AbstractTableGateway を拡張するデータベースから取得されている日付があります。これはデータを正しく取得していますが、Zend_Date を使用して日付をフォーマットし、モデル/ビューで文字列表現を自分で操作したくありません。
私がこれを行う方法について誰かアイデアがありますか?
もう 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())
参照用のカスタム データタイム ヘルパーは次のとおりです。
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