Intereting Posts

Zend Framework 2: форматирование даты в представлении

Я новичок в платформе Zend и решил попробовать создать простое приложение с помощью ZF2.

У меня есть дата, которую вытаскивают из базы данных, где мой настольный шлюз расширяет AbstractTableGateway, это правильно портирует мои данные, но я хотел бы отформатировать дату с помощью Zend_Date и не манипулировать строковым представлением в моей модели / представлении.

Есть ли у кого-нибудь идеи о том, как я это делаю?

Solutions Collecting From Web of "Zend Framework 2: форматирование даты в представлении"

Вот мой специальный помощник для создания данных для справки:

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())