Zend Framework 2:在视图中格式化日期

Mat*_*att 0 php view-helpers zend-framework2

我是Zend框架的新手,并决定尝试使用ZF2构建一个简单的应用程序.

我有一个日期从数据库中拉出我的表网关扩展AbstractTableGateway,这是正确地拉我的数据但我想使用Zend_Date格式化我的日期而不是在我的模型/视图中操纵字符串表示.

有没有人对我这样做有什么想法?

Sam*_*Sam 8

另一种选择是已经存在的ViewHelper \ Zend\I18n\View\Helper\DateFormat

通过这种方式,您可以确保您的视图脚本已准备好进行国际化(i18n),并且所有页面查看器都能够以各自的格式查看日期.

这需要启用php_intl扩展.

长时间使用看起来如下所示:

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

但是,就像AlloVince的方法一样,我建议为此编写自己的视图助手.这样你就可以写出像$this->myDateFormat($db->getDate())


All*_*nce 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',
    ),  
),
Run Code Online (Sandbox Code Playgroud)

然后通过以下方式调用它:

$this->datetime(time(), 0, 'Y-m-d');  //2012-10-09
$this->datetime()->jsTime(time()); //Sat Oct 6 17:16:05 UTC+0800 2012
Run Code Online (Sandbox Code Playgroud)