0

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

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

有人对我如何做到这一点有任何想法吗?

4

2 回答 2

8

另一种选择是已经存在的 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 回答