Zend Date为CONSTANT Zend_Date :: DATES提供了错误的格式

时间:2011-02-22 19:43:49

标签: php zend-framework

我在从函数返回正确的日期格式时遇到问题。 ZF文档说如果我使用常量“Zend_Date :: DATES”或“Zend_Date :: DATE_MEDIUM”,它应该以en_us locale Zend Documentation的格式03.09.2011返回日期但是我得到了日期对于这两个常量,就像这个Mar 9, 2011一样返回。但是,如果我使用“Zend_Date :: DATE_SHORT”常量,我得到03/09/11,这正是文档所说的那样。那么为什么另外两个常量给我一个不同的格式......如果出现问题,是否有一些全部默认值?我怀疑这是一个ZF错误,因为很多人会把它们淹没在这个bug中,所以我确定我错了,但我无法弄清楚它可能是什么,需要一点帮助感兴趣。

这是我的功能:

function ZEND_format_date_locale_display($str_date, $lang_LOCALE)
{
    include_once $zend_lib_path . '/Zend/Date.php';
    $date = new Zend_Date();
    $date->set($str_date, 'yyyy-MM-dd');    
    $date = $date->toString(Zend_Date::DATES, $lang_LOCALE);
    return $date;
}

2011年3月9日的日期来自mysql数据库,如'2011-03-09'。

我这样称呼函数:

ZEND_format_date_locale_display('2011-03-09', 'en_us')

任何帮助或想法表示赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:3)

Zend Documentation说“下面的示例输出反映了本地化到欧洲/ GMT + 1小时(例如德国,奥地利,法国)”。因此,如果您将区域设置设置为例如'de'你应该得到预期的结果。

答案 1 :(得分:0)

为什么不使用PHP的内置函数? 您可以使用strtotime()将任何可读格式的日期转换为UNIX时间戳,然后您可以使用date()将此时间戳转换为任何格式。

http://php.net/manual/en/function.strtotime.php

http://php.net/manual/en/function.date.php