【发布时间】:2012-12-25 12:36:30
【问题描述】:
我正在尝试使用 Zend Framework 2 显示当前年份,我发现的文档并未涵盖如何输出自定义日期格式。
如果有人可以向我提供 Zend Framework 2 语法以输出自定义日期/时间格式,我们将不胜感激。谢谢!
【问题讨论】:
标签: zend-framework2
我正在尝试使用 Zend Framework 2 显示当前年份,我发现的文档并未涵盖如何输出自定义日期格式。
如果有人可以向我提供 Zend Framework 2 语法以输出自定义日期/时间格式,我们将不胜感激。谢谢!
【问题讨论】:
标签: zend-framework2
在此查看question。
在此处复制粘贴答案: Zend_Date 已被删除以支持 PHP 5.3 DateTime API http://es.php.net/manual/en/book.datetime.php
在 ZF2 中查看 source code 的 DateFormat Helper 似乎是不可能的。基本上只需使用 php 类就足够了。
Zend Framework 1 或 2 并没有封装所有内容。当 php 的某些部分完美时,它不会被替换。
编辑:这对提问者有效:
$datetime = new DateTime(null, new DateTimeZone('America/Chicago'));
echo $datetime->format('Y');
【讨论】:
$datetime = new DateTime(null, new DateTimeZone('America/Chicago')); echo $datetime->format('Y');
DateTime 中设置时区,因为这会使代码非常不灵活。要了解如何设置时区,请查看以下问题:stackoverflow.com/questions/2213608/…
DateTime 构造的一部分。最好在服务器范围或至少在应用程序范围内获得正确的时区,因为您将不断复制/粘贴时区并在它更改时遇到很多麻烦(或者您真正应用 i18n)
Zend Framework 2 不再提供任何特定的日期对象。相反,它适用于原生 php DateTime。您使用 DateTime 对象,它们可以在助手中使用以转换输出。
您提到的视图助手也专门用于 i18n。每个国家/地区的时间戳格式都不同,所以这就是助手的用途。然而,在美国、英国和中国,2013 年是 2013 年。没有必要为此使用 i18n。
因此,当前年份直接与DateTime 一起使用,并使用date() format parameters 格式化:
$date = new DateTime;
$date->format('o'); // ISO-8601 year, four digits
$date->format('Y'); // Four digits
$date->format('y'); // Two digits
您可能想要使用Y 或y。
【讨论】: