Я новичок в платформе Zend и решил попробовать создать простое приложение с помощью ZF2.
У меня есть дата, которую вытаскивают из базы данных, где мой настольный шлюз расширяет AbstractTableGateway, это правильно портирует мои данные, но я хотел бы отформатировать дату с помощью Zend_Date и не манипулировать строковым представлением в моей модели / представлении.
Есть ли у кого-нибудь идеи о том, как я это делаю?
Вот мой специальный помощник для создания данных для справки:
https://github.com/AlloVince/eva-engine/blob/master/vendor/Eva/View/Helper/Datetime.php
зарегистрируйте этот помощник как invokable вспомогательную службу в вашем файле конфигурации модуля
'view_helpers' => array( 'invokables' => array( 'datetime' => 'Eva\View\Helper\Datetime', ), ),
Затем позвоните в поле зрения:
$this->datetime(time(), 0, 'Ym-d'); //2012-10-09 $this->datetime()->jsTime(time()); //Sat Oct 6 17:16:05 UTC+0800 2012
Другим вариантом будет уже представленный 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())