我是 Zend 框架的新手,并决定尝试使用 ZF2 构建一个简单的应用程序。
我有一个日期从我的表网关扩展 AbstractTableGateway 的数据库中提取,这是正确提取我的数据,但我想使用 Zend_Date 格式化我的日期,而不是自己在我的模型/视图中操作字符串表示。
有人对我如何做到这一点有任何想法吗?
我是 Zend 框架的新手,并决定尝试使用 ZF2 构建一个简单的应用程序。
我有一个日期从我的表网关扩展 AbstractTableGateway 的数据库中提取,这是正确提取我的数据,但我想使用 Zend_Date 格式化我的日期,而不是自己在我的模型/视图中操作字符串表示。
有人对我如何做到这一点有任何想法吗?
另一种选择是已经存在的 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