【问题标题】:Zend Date giving wrong format for the CONSTANT Zend_Date::DATESZend Date 为 CONSTANT Zend_Date::DATES 提供了错误的格式
【发布时间】:2011-07-02 06:27:30
【问题描述】:

我在获取要从我的函数返回的正确日期格式时遇到问题。 ZF 文档说,如果我使用常量“Zend_Date::DATES”或“Zend_Date::DATE_MEDIUM”,它应该以03.09.2011 格式返回日期,用于 en_us 语言环境Zend Documentation 但我得到的日期是这样返回的@ 987654323@ 这两个常数。但是,如果我使用“Zend_Date::DATE_SHORT”常量,我会得到03/09/11,这正是文档所说的。那么为什么其他两个常量给了我不同的格式……如果出现问题,它是不是一些通用的默认值?我怀疑这是一个 ZF 错误,因为很多人会用这个错误淹没他们,所以我确定我只是出了点问题,但我不知道它可能是什么,需要任何人的一点帮助有兴趣。

这是我的功能:

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;
}

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

我这样调用函数:

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

感谢任何帮助或想法。提前致谢。

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗯,从 zend 开始...从来没有真正考虑过 php 的东西我会研究它...它是否适用于多个语言环境?
    【解决方案2】:

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

    【讨论】:

    • 感谢您的回复。我刚刚检查了语言环境,它使用“en_US”作为值。如果我将其更改为法语的“fr_FR”,我会遇到同样的问题......还有其他想法吗?
    • @Ronedog。对于“de_DE”,你应该得到你想要的格式(尽管我认为你必须使用 en_US)。您确定 en_US 的 Zend_Date 应该生成 03.09.2011 吗?抱歉,我现在没有其他想法。
    • 嗯...我的立场得到纠正...我输入了硬编码的“de_DE”行,它给了我想要的结果。现在我需要弄清楚 en_US 和 fr_FR 的代码……我认为那些是正确的。感谢您指出这一点。
    • 好的,根据本文档:framework.zend.com/manual/en/zend.locale.appendix.html 'en_US' 和 'fr_FR' 应该是受支持的语言环境,我假设应该输出日期格式,就像它为 'de_DE' 所做的那样,除了月份 &一天的位置将根据语言环境进行交换。但是,当我输入 'en_US' 和 fr_FR 时,我再次收到原来的错误(输出是 2011 年 3 月 10 日而不是 2011 年 3 月 10 日……所以,您认为 ZEND 内部有错误导致这种情况吗?
    • @Ronedog。我不知道这是一个错误,尽管它当然是可能的。无论如何,作为一个快速的临时解决方案,我建议通过添加一个 if 语句来重构你的函数,该语句应该使用 de_DE 而不是 en_US 或某种意义上的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多